微服务学习笔记(0)——DDD微服务项目结构


应用程序层

类型:WebAPI项目,微服务入口

存放内容:

命令、命令处理、查询(CQRS时,用dapper等轻量查询方式)、事件处理

领域模型层

纯净的类库项目,遵循持久性忽略和基础结构忽略原则,不依赖与任何其它项目,域模型层应只关注域逻辑(域专家可理解的内容),而不应关注应用程序基础结构(如处理程序)和使用存储库的副作用持久性操作。

存放内容:

领域模型、领域事件、SeedWork(聚合根、值对象、实体、仓储、工作单元等抽象类和接口,如果较多可独立成一个类库或私有nuget包供各微服务安装使用)

为解决复杂性,务必要通过聚合根来控制一个域模型,以确保与该组实体(聚合)相关的所有固定协定和规则通过单个入口点或入口(聚合根)来执行。

基础设施层

类库项目,将域模型层中的数据持久化到数据库,实现仓储

存放内容:

数据库映射配置、数据库上下文、仓储实现等

参考资料:

https://docs.microsoft.com/zh-cn/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/ddd-oriented-microservice