4

通常,我不喜歡將代碼(BaseClasses或DataAccess代碼)保存在ASP.NET網站的App_Code目錄中。我通常會將這些內容分別放入MySite.BusinessLogic & MySite.DataAccess DLL中。是否有ASP.NET MVC生產應用程序的建議解決方案結構

我想知道應該爲ASP.NET MVC做同樣的事情。

它會更好,組織液沿東西

  • MySite.Common的線 - DLL - (基本功能建立在.NET系統DLL)
  • MySite.DAL - DLL - (DataAccessLayer & DBML文件)
  • MySite.Models - DLL - (MVC模型例如庫類)
  • MySite.Controllers - 它們使用模型DLL(MVC控制器)
  • 的MySite - AS P.NET MVC網站。

還是我失去了一些東西......大概,我會失去一些很好的(添加視圖,請轉到控制器,已添加上下文菜單項)

回答

3

我只是做了一些DLL - - (建立在.NET系統DLL基本功能)

  • MySite.DAL - DLL - (DataAccessLayer & DBML文件

    • MySite.Common:使用MVC,但使用您的命名結構,我們做了以下項目和Repostiory模型)
    • MySite.Models - 這包括作爲MVC的Web應用程序的一部分 和只有特定的觀點,即沒有 始終映射一對一每個 倉庫模型 車型。
    • MySite.Controllers - 作爲MVC應用程序的部分 包含,但可以鏈接到業務層
    • MySite - MVC應用程序。

    所以,最後在我的MVC解決方案的以下項目:

    • MVC Web應用程序 - 包括控制器,視圖模型DAL數據映射到。
    • 常見 - 可能在其他應用程序
    • DAL使用的功能 - 包含了所有的數據訪問相關的數據,包括包裝類
    • BL - 可選的依賴,如果它需要大量的特定業務邏輯的
    • 測試

    編輯:我DALS送花兒給人輸出包裝的對象(如果使用LINQ2SQL然後我自動生成的類來我的班在DAL直接映射)。 MVC應用程序中存在的唯一類是代表viwes的容器,主要用於將數據傳遞給視圖。

    如果您的移動應用使用類似的視圖,我不會嘗試從MVC應用視圖中重複使用相同的類。總是需要管理的細微差異,您應該能夠使用DAL類映射到您的移動視圖,該視圖遵循將視圖類保持本地化爲應用程序的模式。

  • +0

    是的,這幾乎是我在過去爲標準ASP.NET(Common,DAL,BLL)所做的事情,但是在一個DLL和DAL-Repository代碼中使用DAL代碼看起來似乎「混亂」網站...同樣,我們可能需要在MVC中創建一個新的移動版本的站點,但作爲一個不同的應用程序託管在不同的服務器上,所以能夠重用庫中的控制器/模型並且只需要必須寫出新的觀點。 – 2010-03-25 17:19:16

    3

    在大多數情況下,以下結構正常工作:

    • MySite.BusinessLogic(控制器,模型庫,...)
    • MySite.BusinessLogic.Tests(單元測試控制器,模型庫,...)
    • MySiteA(意見,靜態內容)
    • MySiteB(意見,靜態內容)

    MySiteA而MySiteB可能是同一站點的兩種風格,它們將業務邏輯的功能重用。

    從性能的角度來看,您應該比許多小型裝配更少的大型裝配。

    2

    我們做的事情有點不同

    • [數據庫名稱] .Database.DLL(DBML文件爲特定數據庫)
    • [數據庫名稱]。服務。[問題域] .DLL(這包含模型,服務和存儲庫)
    • [數據庫名稱]。服務。[問題域] .Tests.DLL
    • [數據庫名稱] .Services.DLL(當上面的一切非常適合在一個單一的服務項目)
    • [數據庫名稱] .Services .Tests.DLL
    • [問題域] .Services.DLL(由問題域業務邏輯)
    • [問題域] .Services.Tests.DLL
    • Web.Framework.DLL(可重複使用ASP.NET & MVC組件)
    • Web.Framework.Tests.DLL
    • MySite.Web.DLL(MVC應用程序包括的ViewModels)
    • MySite.Web.Tests.DLL

    我們這樣做,是因爲我們有我們連接的多個數據庫和數據服務。根據問題域,同一個數據庫可能會被一組不同的模型訪問,但有時會分享相似的名稱。

    的一個服務模塊,我們將有以下結構

    • \型號
    • \庫
    • \服務
    • \等。
    相關問題