2015-11-13 74 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)当然不在域图层。我会将监听器放在基础架构层上(与应用程序/业务逻辑无关),并且在应用层中使用该监听器来获取来自外部设备的数据。