2012-02-08 86 views
0

我想爲我的MVC項目打造一個堅實的架構。改善Asp.net MVC層架構

目前,項目有:

  • 數據庫對象(linqToSql)用於視圖
  • 的ViewModels
  • 一個倉庫用於

     - reading/editing/deleting database objects 
         - creating ViewModels for page 
         - other general functions 
    

我的初始結構是:

MvcApplication (MvcApplication.Common, MvcApplication.Domain, MvcApplication.Models) 
     - containing all the views, controllers, repositories 

MvcApplication.Domain 
     - containing linqToSql data file 

MvcApplication.Models (MvcApplication.Common, MvcApplication.Domain) 
     - containing ViewModels 

MvcApplication.Common (MvcApplication.Domain) 
     - containing helper functions, and Enums 

你能不能指點我創造了這個項目更好的架構?

我應該刪除哪一層?

應該ViewModels在域的層?

回答

0

視圖模型是視圖實現的基礎。我不覺得視圖模型應該在域中。

我會做同樣的事情與數據訪問。我將該層分開,並且只有在域中具有持久性的接口。然後我可以在運行時注入我的數據訪問。 YMMV在那裏。取決於你以後換出DAL的可能性。與服務一樣。域中服務的接口。實現的單獨組裝。

像這樣的DAL抽象在測試過程中變得非常方便,所以我可以完全運行我的單元測試對付嘲笑或不同的存儲機制。

我不瞭解你,但我討厭有我的邏輯測試綁定到某些數據庫的地方。有多人在運行測試,我怎麼能確定測試數據庫的完整性,除非我做sql express?

我甚至不能告訴你抽象像這樣的服務節省了我的培根的次數。什麼,這項服務是緩慢的,因爲它的全部同步?讓我們更改服務實現以在隊列中推送消息。沒有更改應用程序層或任何東西。