【发布时间】:2015-12-08 19:05:59
【问题描述】:
我们有 2 个单独的现有应用程序,它们只能通过总线消息传递系统和数据库进行通信。现在我们想通知第二个应用程序在数据库更新之前或之后在第一个应用程序中对我们的域模型所做的任何更改:一旦我们知道有真正的更改要保存在存储中或刚刚保存,我们想要发送特定消息到一个单独的应用程序。消息未指明进行了何种更改。
一些注意事项:
- 我们希望保持我们的域模型精简,我的意思是内部没有特定的业务逻辑,同时我们不想将服务引用添加到我们的数据层(存储库类列表)
- 理想情况下,即使调用了存储库的 Update 方法,如果数据库没有真正的更改,我们也不希望发送消息。
- 如果消息在数据提交到数据库之前发送也没关系,即使它们最终被拒绝
- 我们的领域模型由几十个对象和几十个属性组成,因此向每个属性添加 OnPropertyChanged 会花费大量时间
- 我们绝对不想在存储级别实现通知系统
- 我们希望以任何开发人员都无法绕过此通知机制的方式构建我们的应用程序设计
您会建议我们在应用程序设计方面使用哪些方法?数据层通过总线系统提交此类通知是一种好习惯吗?我们如何知道数据实际上发生了变化:我们可以通过 NIBerate 会话知道它还是我们必须跟踪领域模型内部的变化?
【问题讨论】:
标签: c# design-patterns nhibernate