2015-11-13 75 views
2

我公司正在開發一款用於產品銷售的新軟件。我們決定爲表示層使用DDD + CQRS基礎結構和WPF,但我不知道在提出事件時如何通知我的UI。 1)問題: - 操作員點擊「註冊」按鈕保存訂單。 - 我的ViewModel發送RegisterOrderCommand到命令總線 - 「RegisterOrderCommandHandler」管理命令 - 域層中的OrderAggregateRoot註冊訂單。 - 域事件「RegisterOrderEvent」被髮送到事件總線。CQRS,Wpf + UI刷新

如何通知我的用戶界面操作已完成? 我的ViewModel註冊一個EventHandler來管理域層中的事件是否正確? 2)問: 與第一個類似。我有一個想與我溝通的外部設備。我要放置聽衆的位置?在域中,在應用層還是在基礎設施層?

謝謝

回答

0

1)它取決於你的發送命令是否同步或異步。在第一種情況下,您可以在try catch塊內發送命令,如果命令無效,讓命令處理程序拋出異常。在第二種情況下,恐怕你只有兩種選擇:

一)假設命令總是全成

二)創建一個由一個事件處理程序從讀出側和交易處理的failedevent相應地在UI級別。

2)當然不在域圖層。我會將監聽器放在基礎架構層上(與應用程序/業務邏輯無關),並且在應用層中使用該監聽器來獲取來自外部設備的數據。