我即將開始開發一箇中等規模的ASP.Net MVC應用程序。 我正在設計正確。我打算有以下各層:ASP.NET MVC:什麼去哪裏?
- UI層(MVC)
- 服務層
- 庫層
- 數據訪問層
我將使用Unity作爲我的IOC容器和EF4.1代碼首先進行數據訪問。
該應用程序將被拆分爲幾個程序集。我在決定需要哪些程序集時遇到問題 以及在哪裏放置以下內容:
- 實體/域對象例如客戶,發票
- DTO例如CustomerDTO,InvoiceDTO
- 服務接口例如ICustomerService
- 存儲庫接口例如ICustomerRepository
- 服務(服務接口實現類)例如CustomerService
- 存儲庫(存儲庫服務實現類)例如CustomerRepository
- ViewModels例如CustomerViewModel
- 枚舉
我的問題是: 你通常如何分割你的,爲什麼?
編輯:@TheHurt的答案提示。
組件之間的引用是怎樣的,即哪個組件會引用哪個組件?
你需要DTO嗎?爲什麼不能使用EFCF POCO? – TheHurt 2011-05-09 11:42:50
@ TheHurt:我不需要所有實體的DTO,但對於一些實體,視圖需要的與實際保存在數據庫中的實例有很大不同。 – Ben 2011-05-09 11:44:36
我認爲DTO's仍然有用,因爲有時您只想傳遞一些屬性。我不喜歡傳遞只有幾個屬性設置的實體(並且其他所有設置都被設置爲default()),因爲它可能有點危險。 – 2011-05-09 11:46:57