c# - CQRS、Wpf + UI 刷新

标签 c# wpf events cqrs

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

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

2)问题: 与第一个类似。我有一个外部设备想要与我通信。我必须在哪里放置听众?在领域层、应用层还是基础设施层?

谢谢

最佳答案

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

a) 假设命令总是成功的

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

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

关于c# - CQRS、Wpf + UI 刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33691522/

相关文章:

c# - List<int> 到 IEnumerable<IComparable>

wpf - 如何使用Powershell在WPF中显示rtf文件?

wpf - WPF ComboBox itemsSource在Prism MVVM中不起作用

wpf - 引发 WPF MouseLeftButtonDownEvent 事件

javascript - jQuery DataTables - 行点击不在第一页以外的页面上注册

c# - 难以比较 DateTimes 中的差异

c# - 如何在每第 n 个字符后拆分字符串?

Java - 获取绘制组件的名称

c# - 将JSON反序列化为c#类

wpf - Prism :壳之间的导航?