C# 如何使用DDD和SRP实现可维护且松散耦合的应用程序?
问这个问题的原因是我一直想知道如何将所有这些不同的概念缝合在一起。有很多关于DDD、依赖注入、CQRS、SOA、MVC的示例和讨论,但关于如何以灵活的方式将它们组合在一起的示例并不多 我的目标:C# 如何使用DDD和SRP实现可维护且松散耦合的应用程序?,c#,wcf,design-patterns,architecture,domain-driven-design,C#,Wcf,Design Patterns,Architecture,Domain Driven Design,问这个问题的原因是我一直想知道如何将所有这些不同的概念缝合在一起。有很多关于DDD、依赖注入、CQRS、SOA、MVC的示例和讨论,但关于如何以灵活的方式将它们组合在一起的示例并不多 我的目标: 开发只需很少修改或没有修改就可以独立运行的模块 更改或返工UI应尽可能简单(即UI应尽可能少做,并且“愚蠢”) 使用文档化的模式和原则 为了便于提出具体问题,主要结构如下所示: 该示例显示如何向员工添加注释。员工管理是一个有界上下文。员工有多个属性,其中包括ICollection 绑定上下文在我的理解
ICollection
绑定上下文在我的理解中是分离代码的逻辑位置。每个BC都是一个模块。大多数情况下,我发现它们中的每一个都可以在需要时保证自己的UI(即,某些模块可能适用于Windows phone)
域包含所有业务逻辑
基础架构包含存储库实现和服务,用于发送邮件、保存不属于该域的文件和实用程序。我正在考虑在多个域中使用一些常见的服务功能(如发送电子邮件)作为一种API,我可以引用它来保存一些代码,这些代码在几个BC中实现相同的东西
查询层保存存储库中获取对象所需的GetById以外的所有查询。查询层可以查询其他持久性实例,并且可能需要为每个UI更改一些
Wcf或Web Api类似于我的应用程序层,它可能属于基础架构,而不属于外部。此服务还设置依赖项,因此UI需要做的只是请求信息和发送命令
这个过程从蓝色箭头开始。阅读模型,因为它包含了大部分信息
在步骤1中,本例中的EmployeeDto只是一些员工属性,用于显示需要记录的员工的用户信息(例如关于新体验的记录或类似内容)
那么,问题是: