架构:简单的CQS

本文关键字:CQS 简单 架构 | 更新日期: 2023-09-27 18:04:32

我想申请CQS作为我的ASP。NET MVC网站,但在一个非常简单的事情。我不是指CQRS,因为我想对查询和命令部分使用相同的数据源,所以我不需要事件溯源和其他更复杂的模式。

所以,我想到的是:

  • 使用相同的数据库查询和命令部分
  • 为查询部分,通过实体框架和WCF数据服务公开数据库视图,从而将特定视图返回给客户端,查询数据变得非常容易
  • 命令部分,使用实体框架和单向WCF服务公开数据库表,并使用DDD原则。

我想实现的主要目标是:

  • 由单向服务操作执行的简单命令,并由富域模型处理,客户端只需要传递执行命令
  • 所需的数据
  • 对简单视图的灵活查询,为客户端的特定UI设计

这有意义吗?

架构:简单的CQS

那么,回答你的问题,是的,我认为这是有道理的。

我不知道你还在找什么。我认为你采取的方法是有道理的,应该会给你你想要做的事情。

在我看来,CQS和CQRS非常相似,CQRS有独立的读写存储的概念(有些人会认为写存储可能甚至没有必要)。事件溯源并不是CQRS的真正组成部分——可以说,它是一个附加组件,可以很好地适应CQRS的分布式特性。

你的方法放弃了数据的一些可伸缩性,因为你使用视图将数据扁平化。但如果你的应用不需要它,那就没有问题了。

另外,阅读Udi Dahan关于何时避免CQRS的文章可能会很有用。这可能有助于证明你的决定是正确的。他发布时引起了不小的轰动。但在他和格雷格·杨之间,他们是CQRS的专家。

我不确定我是否回答了你的问题或帮助,但祝你的项目好运!