【问题标题】:CQRS, Wpf + UI RefreshCQRS、Wpf + UI 刷新
【发布时间】:2016-02-14 23:06:10
【问题描述】:

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

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

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

谢谢

【问题讨论】:

  • 你自己终于找到答案了吗?

标签: c# wpf events cqrs


【解决方案1】:

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

a) 假设命令总是成功的

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-08
    • 2013-03-19
    • 2012-09-23
    • 2021-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-22
    相关资源
    最近更新 更多