【发布时间】:2015-04-19 18:52:25
【问题描述】:
我正在使用 CQRS 构建一个新项目,它是一个 3 层应用程序,预计客户端状态是同步的。服务器向客户端接收命令和回调事件。
目前,该模型有几个可以添加/删除/更新的子模型,每个子模型都有自己的命令。事件是特定于字段的,即
- 更新项目命令
- CreateSubItemCommand
- RemoveSubItemCommand
- UpdateSubItemCommand
- ...
- ItemFieldAUpdatedEvent
- SubItemFieldAUpdatedEvent
- SubItemFieldBUpdatedEvent
- ...
所以这是我的询问,客户端获取模型的当前状态,用户编辑本地模型,单击“保存”按钮,这就是我的错误所在。我应该
- 比较模型的原始状态(使用接收到的事件更新)和模型的编辑状态以生成一组命令(在每个接收到的事件上,需要识别已更新的字段并通知用户如果他编辑了已更改的字段),
- 在用户编辑模型时创建命令,执行和撤消编辑(这将很难管理),
- ...
基本上我不知道应该应用哪种策略来生成命令!
那里有一个例子吗,我用谷歌搜索过,但发现关于这个主题的注意事项。
谢谢,
多米尼克
【问题讨论】:
-
我建议您阅读有关基于任务的 UI:cqrs.wordpress.com/documents/task-based-ui
-
您好 Mequrel,首先感谢您花时间理解问题并给出相关答案。我不知道这个概念,是的,这似乎是一个很好的解决方案。但是,UI 设计已由客户端指定,与基于任务的 UI 不兼容。我会尝试向我的客户提出这个 UI 设计。虽然 CQRS 并没有在 UI 方面受到限制。再次感谢您的灯!
-
嗨 Mequrel,您能否复制粘贴该评论作为答案,以便我将其标记为已回答?谢谢
标签: cqrs