2014-06-26 71 views
1

我正在使用CQRS構建一個新項目,這是一個3層應用程序,並且期望客戶端狀態是同步的。服務器接收命令和回調事件給客戶端。CQRS客戶端命令管理

目前,該模型有幾個子模型,可以添加/刪除/更新,其中每個都有自己的命令。事件是特定領域即

  • UpdateItemCommand
  • CreateSubItemCommand
  • RemoveSubItemCommand
  • UpdateSubItemCommand
  • ...
  • ItemFieldAUpdatedEvent
  • SubItemFieldAUpdatedEvent
  • SubItemFieldBUpdatedEvent
  • ...

因此,這裏是我的審訊,客戶獲取模型,用戶編輯的局部模型的當前狀態,單擊保存按鈕,這是我的錯誤。我應該

  • 比較模型的原始狀態(更新與接收到的事件)和模型的編輯狀態,生成一組命令(在它需要識別已更新領域的每一個接收到的事件和通知用戶,如果他編輯的改變)字段,
  • 創建的用戶正在編輯的模型做的和撤消編輯命令(這將是難以管理),
  • ...

基本上我不知道我應該採用哪種策略來生成命令!

有沒有一個例子,我谷歌周圍,但發現注意到這個問題。

感謝,

多米尼克

+2

我建議您閱讀有關基於任務的UI:http://cqrs.wordpress.com/documents/task-based-ui/ – Mequrel

+0

嗨Mequrel,首先感謝您花時間瞭解問題並給予相關答案。我不知道這個概念,是的,這似乎是一個很好的解決方案。但是,UI設計已由客戶端指定,而不是基於任務的UI兼容。我會嘗試向我的客戶提出這個UI設計。我沒有通過CQRS限制在UI方面。再次感謝您的燈光! –

+0

嗨Mequrel,你可以複製粘貼評論作爲答案,所以我可以把它標記爲回答?,謝謝 –

回答