CQRS项目结构

时间:2015-08-14 03:24:46

标签: cqrs event-sourcing

我已经在项目中使用了以下项目结构一段时间了,但是想要开始使用CQRS / Event Sourcing。寻找如何构建项目的建议。

目前我用这个:

  • ProjectName.Common:扩展方法,助手等
  • ProjectName.Core:包含定义如何与域模型交互的域模型和服务接口。我一直在使用Anemic Domain Models,但我希望转向更丰富的DDD模型。
  • ProjectName.Data:包含用于将域模型持久保存到实体框架的存储库和UnitOfWork。
  • ProjectName.Services:包含ProjectName.Core.Services命名空间中描述的所有服务实现。还包含核心业务逻辑和验证,并通过存储库和工作单元协调检索和保存域模型到数据库。
  • ProjectName.Web:通常是ASP.NET MVC项目或其他表示层。

就结构而言,CQRS /事件采购模式中的相同内容会是什么样的?

我在这里阅读了这篇文章:CQRS/Event sourcing project structure,但正在寻找其他想法和例子。

1 个答案:

答案 0 :(得分:1)

如果需要扩展应用程序,请确保您能够将(如果/在必要时)命令处理程序和事件非规范化程序分离到多个项目中。在极端情况下,每个项目可能是1个命令/事件处理程序。

这也意味着命令和事件需要在单独的项目中,以便它们可以在命令和事件处理程序之间分配。通常,命令处理程序需要能够进行域项目和事件存储项目。事件非规范化器需要访问读取模型数据访问项目。

用户体验,基础设施,单元测试可以以适合您的任何方式构建。