CQRS+ES项目解析-Equinox

Posted dotNet平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CQRS+ES项目解析-Equinox相关的知识,希望对你有一定的参考价值。


项目概览

首先通过github获取到项目源代码,打开项目文件,你会看到如下分层:

  • Presentation:展示层,UI在该层实现

  • Services:WebApi在该层实现,同样隶属于UI

  • Application:应用程序服务层,提供了对Domain层接口的封装,注重数据交换,DTO对象在该层定义

  • Domain:领域层,项目的核心部分,领域对象、领域服务在该层实现

  • Infra:基础设施层,项目的公共部分(数据访问)、切片(身份认证、消息发布、依赖注入)部分在该层实现

通过项目分层,我们已经对该项目有了一个大致的轮廓,当从Presentation、Services层接收到来自客户端的请求后,将会调用Application层的应用程序服务,应用程序服务将数据进行封装和转换,然后交给Domain层进行处理,Domain层则调用Infra相关的方法完成持久化、消息发布等功能。

Domain层

Domain层是Equinox项目的核心部分,Entity/ValueObject、Repository、UoW、Command、Event、EventStore等均在该层进行定义,我们来看一下。

Entity对象

实体对象,定义如下: