我承認我仍然是一個DDD的新手,在CQRS中更是如此。我也意識到DDD和/或CQRS可能不是解決所有問題的正確方法。不過,我喜歡校長,但在當前項目的背景下有一些問題。用於具有多個數據庫的複合.NET應用程序的DDD/CQRS
該解決方案是一個模擬器,可根據當前配置生成性能數據。管理員可以創建和修改模擬規範。測試人員設置一些環境條件並運行模擬器。結果被捕獲,彙總並報告。
解決方案由3個組件區組成,每個組件區都有自己的用例,域邏輯和支持數據結構。因此,模塊化設計似乎很有吸引力,作爲分離邏輯和分離問題的一種方式。
- 第一個區域是管理方面,它允許用戶創建和修改規範。這將是一個CRUD重型「模塊」。
- 第二個區域將用於執行模擬。領域模型將類似於第一個領域,但爲執行模擬而優化,而不是提供便於編輯的模型。
- 第三方面是報告。
我的第一本能是遵循這些線條並創建三個封裝每個區域的域層的模塊(程序集)。我是否應該有三個獨立的數據庫?也許超過三個支持寫與讀?
我收集這可能是首選的CQRS,但我不知道如何去做。在我看來,CQRS提出了一組移動數據的後端過程。但是如果情況如此,並且數據持久性是交叉的(如DDD所示),那麼我的數據訪問代碼是否需要知道所有域對象?如果是這樣,那麼分離模塊是否有好處?
最後,我之前沒有提到的是,規範被認爲是「草案」,直到發佈,然後可用於仿真。我的PublishingService需要知道第一個和第二個領域的領域模型,以便當它響應SpecificationPublishedEvent時,它可以讀取規範,翻譯模型並將其保留以供執行。這讓我覺得我畢竟沒有三個邊界上下文。或者我在分析中錯過了什麼?
發佈服務又是什麼?這是執行模擬的服務嗎?或者是PublishingService與事件發佈者相同? – 2011-05-18 12:15:45