我正在開發一個WPF應用程序,它連接到幾個WCF服務(與LINQ-TO-EF一起工作)。我的WPF + WCF場景中是否需要DDD?
的WPF設計在MVVM方式。
對於每一個WCF服務,我有以下:
- 服務層DLL - 這包括服務接口,服務實現。服務的實現只是創建BL對象並調用它們的方法
- 服務BL層DLL - 這包括管理器工廠(工廠創建的UserManager,任務管理等)。每個經理都有一個接口+實現(用於單元測試目的和DI)。例如 - 任務管理具有「GetTasks」,「CheckTaskIsValid」等。另外,對BL層具有「Trasnlator」類從數據實體轉換爲DTO。 BL管理器方法將DTO返回到服務層。
除了上述之外,所有的服務的BL引用數據訪問層DLL包括:
-
與來自MS SQL服務器
- 自動生成的DbContext + POCO表
- EDMX文件實體
- 查詢供應商(由BL管理類使用)。每個查詢提供者都有一個用於單元測試和DI目的的接口+實現。
- 的DbContext廠 - 接口+實現,對於單元測試和DI目的。
該服務採用CQS設計(Command-Query-Seperation,不與CQRS混合使用),這意味着有一個服務只負責查詢,一個服務負責發送命令。
我使用DI(使用AutoFac)通過我的WCF主機項目承載所有服務(我實現了IInstanceProvider,以便我可以注入依賴到服務)。
我沒有實現我自己的倉庫或單位工作的,因爲已經的DbContext 是 UOW和存儲庫。
是這樣的設計有缺陷?
我已經閱讀了很多關於DDD的帖子,我知道我的設計是不 DDD。
我的問題是 - 是我不夠好設計?我是否需要將所有代碼重構爲DDD? (使用聚合和根集合等)。
我試圖提供儘可能詳細地瞭解設計的,所以我希望我沒有得到答案,如「你的問題太籠統」或「需要一些例子」 ...任何有用的信息會很非常感激 !
我們如何建議您使用領域驅動設計當你沒有提到任何關於你的域名? –
@Martijn - 你能解釋一下你需要我提供哪些信息? (我不知道'Domain'是指什麼) –