源码及系列文章目录
Git 源码 :https://github.com/tangsong1995/TS.Microservices
CSDN 资源 :https://download.csdn.net/download/qq_33649351/34675095
系列文章目录 :https://blog.csdn.net/qq_33649351/article/details/120998558
应用分层
• 领域模型层
• 基础设施层
• 应用层
• 共享层
共享层
共享层分为三个工程:
- Core:承载一些基础的类型,如异常、帮助类等。
- Domain抽象层:定义领域模型的基类和接口,定义领域事件的接口,定义领域事件处理的接口,定义值对象。
- 基础设施核心层:定义仓储和EFContext的共享代码。
共享层的类库在不同的项目中都可以使用,可以放到私有Nuget仓库中。
其他可以共享的代码也可以放到这一层,如缓存、消息队列、网关等。
领域模型层
定义项目中的领域模型,定于聚合及领域事件。
基础设施层
基础设施层定义了仓储层和项目内的共享代码的实现。
应用层
应用层分为两个工程:
- Api层:承载WebApi。
- 后台任务:执行Job。
其中Api层又分为以下几个目录:
- Application:使用CQRS的设计模式,命令查询分离,还包含领域事件的处理及集成事件的处理。
- Controllers:定义Api接口。
- Extensions:服务注册及中间件配置。
建议
- 领域模型专注业务的设计,不依赖仓储等基础设施层
- 基础设施的仓储层仅负责领域模型的取出和存储
- 使用 CQRS 模式设计应用层
- Web API 是面向前端的交互的接口,避免依赖领域模型
- 将共享代码设计为共享包,使用私有 NuGet 仓库分发管理