shared(共享层): 可以将此工程通过私有的NuGet包来存储,其他的工程引用NuGet包即可。
- Core
承载基础的简单的类型,比如说我们的自定义异常,或者一些帮助类。
- Domain.Abstractions
在领域模型中定义一些基类或者接口,领域事件的接口,领域事件处理的接口,Entity的接口和Entity的基类。
- Infrastructure.Core
对仓储(Repository)和EFContext定义基础的代码,如接口和基类。
Domain(领域层):
- 聚合(Aggregate)
存取对应领域模型的聚合根。每个聚合根上可以有自己的数据(data)和行为(behavior)。
- 领域事件 (Events)
Infrastructure(基础设施层):
对仓储层和一些共享代码的具体实现,如对不同聚合根的Repository的实现,对DbContext的具体定义(如EntityConfigurations)等。
Application(应用层):
- Api
- Application-(Commands(CQRS命令职责),DomainEventHandlers(领域事件的处理),IntegrationEvents(集成事件的处理),Queries(CQRS查询职责))
- Controller-(定义前后端交互的接口)
- Extensions-(ApplicationBuilderExtensions, ServicesCollectionExtensions)
- Infrastructure-(Auth,Caching)
- BackgroundTasks
后台任务用来执行特殊的Job,可以是一个控制台的程序