GitHub - kgrzybek/modular-monolith-with-ddd: DDD单体模块化架构.NET案例源码


采用领域驱动设计方法的全模块化Monolith的 .NET应用程序。点击标题进入。



领域模型原则和属性:
领域模型是系统中的中心和最关键部分,应该特别注意设计。以下是一些应用于每个模块的域模型的关键原则和属性:

  1. 高水平的封装

private默认情况下,所有成员都是内部的。
  1. 高水平的PI(持久性无知)

不依赖于基础设施,数据库和其他东西。所有课程都是POCO。
  1. 丰富的行为

所有业务逻辑都位于域模型中。没有泄漏到应用程序层或其他地方。
  1. 低水平的原始观察

Entites的原始属性使用ValueObjects组合在一起。
  1. 商业语言

在此有界上下文中使用的业务语言中命名的所有类,方法和其他成员。

模块之间的集成仅使用Integration Events和In Memory Events Bus作为代理以异步方式进行。这样,模块之间的耦合最小,并且仅存在于Integration Events的结构中。
模块不共享数据,因此不可能并且想要创建跨越多个模块的事务。为确保最大可靠性,使用了发件箱/收件箱模式。它们相应地提供“至少一次交付”和“至少一次处理”。