领域模型应用分层

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,可以是一个控制台的程序

原文地址:https://www.cnblogs.com/Xieyiincuit/p/14016858.html