CQRS,Wpf + UI刷新

时间:2015-11-13 11:17:06

标签: c# wpf events cqrs

我的公司正在为产品销售创建一个新软件。我们决定将DDD + CQRS基础架构和WPF用于表示层,但我不知道在引发事件时如何通知我的UI。 1)问题: - 操作员单击“注册”按钮以保存订单。 - 我的ViewModel将RegisterOrderCommand发送到命令总线 - “RegisterOrderCommandHandler”管理命令 - 域层中的OrderAggregateRoot注册订单。 - 域事件“RegisterOrderEvent”被发送到事件总线。

如何通知我的UI操作已完成? 我的ViewModel注册一个EventHandler来管理域层中的事件是否正确?

2)问题: 类似于第一个。我有一个想要与我沟通的外部设备。我要把听众放在哪里?在域层,应用层或基础架构层中?

由于

1 个答案:

答案 0 :(得分:0)

1)这取决于您发送命令是同步还是异步。在第一种情况下,您可以在try catch块中发送命令,让命令处理程序在命令无效时抛出异常。在第二种情况下,我担心你只有两个选择:

a)假设命令总是成功的

b)创建一个failedevent,它由读取端的事件处理程序处理,并在UI级别处理它。

2)当然不在域层中。我会将监听器放在基础架构层上(与应用程序/业务逻辑无关),我会在Application层中使用该监听器从外部设备获取数据。