5

我想用不同的不同的方法,像域驅動開發,設計模式,依賴注入,實體框架的ORM等如何有效地利用asp.net mvc4中的域驅動開發?

需要什麼應該是發展的出發點一些建議,開始在ASP.NET MVC4新應用?我應該從第一階段的關係開始還是從傳統的方法開始? 例如有三個模塊。

  1. 用戶管理。
  2. 記錄。
  3. 錯誤記錄。

我是否應該首先完成用戶管理,如域類,然後是其服務,然後在實際Web應用程序中執行CRUD操作?之後...將從日誌開始(與用戶管理中提到的過程相同)。然後在錯誤日誌中。

那麼,使用這些概念或工具開始開發的最佳實踐是什麼?

回答

10

ASP.NET MVC4只是解決方案的演示文稿的一部分。使用領域驅動的方法,您可以從域開始(通常是單獨的庫項目),然後添加演示文稿(網站,桌面應用程序等)和持久性(在您的域中聲明的存儲庫和uof接口的實現)。

所以,你從創建域模型開始(不是全部,而是其中的一部分)。然後以任何順序創建使用您域模型的UI,並通過實體框架實現存儲庫以保留您的域模型。那麼實際上視圖應該使用ViewModels(否則你的POCO域對象將被Data Annotations屬性和其他東西污染)。這是一個控制器部分,您將使用域模型。你也會通過依賴注入將庫實現注入控制器。

+0

那麼,你是想說,首先我們應該爲所有模塊的域模型,然後使用這些域模型集成到演示部分? –

+2

@DharmikBhandari不是所有模塊都必需的(只有當你要去瀑布DDD時)。迭代地創建你的應用程序。例如。創建一些聚合根。然後爲該聚合創建存儲庫。然後在該根上添加用於CRUD操作的UI。在這次迭代之後,你將會有一段應用程序。然後用新對象和服務擴展域,併爲它們創建持久性和UI。 –

+1

@lazyberezosky:這肯定是一個很好的答案。它幫助我很多。非常感謝 –

5

我會先看看系統的業務功能需求,並首先關注最高價值需求。根據實施要求,實施這些,根據需要填寫您的業務領域。如果您遵循BDD風格的流程,則可以使用單元測試來推出業務功能,並且您的域將隨着業務需求的演變而發展。每個業務需求都應該有一個用戶界面和數據訪問組件,因此隨着域的發展,您可以使用實體框架填寫表示層和數據訪問層。這裏有一個關於BDD幾個有用的帖子: