架构:简单的CQS
本文关键字:CQS 简单 架构 | 更新日期: 2023-09-27 18:04:32
我想申请CQS作为我的ASP。NET MVC网站,但在一个非常简单的事情。我不是指CQRS,因为我想对查询和命令部分使用相同的数据源,所以我不需要事件溯源和其他更复杂的模式。
所以,我想到的是:
- 使用相同的数据库查询和命令部分
- 为查询部分,通过实体框架和WCF数据服务公开数据库视图,从而将特定视图返回给客户端,查询数据变得非常容易
- 命令部分,使用实体框架和单向WCF服务公开数据库表,并使用DDD原则。
我想实现的主要目标是:
- 由单向服务操作执行的简单命令,并由富域模型处理,客户端只需要传递执行命令 所需的数据
- 对简单视图的灵活查询,为客户端的特定UI设计
这有意义吗?
那么,回答你的问题,是的,我认为这是有道理的。
我不知道你还在找什么。我认为你采取的方法是有道理的,应该会给你你想要做的事情。
在我看来,CQS和CQRS非常相似,CQRS有独立的读写存储的概念(有些人会认为写存储可能甚至没有必要)。事件溯源并不是CQRS的真正组成部分——可以说,它是一个附加组件,可以很好地适应CQRS的分布式特性。
你的方法放弃了数据的一些可伸缩性,因为你使用视图将数据扁平化。但如果你的应用不需要它,那就没有问题了。
另外,阅读Udi Dahan关于何时避免CQRS的文章可能会很有用。这可能有助于证明你的决定是正确的。他发布时引起了不小的轰动。但在他和格雷格·杨之间,他们是CQRS的专家。
我不确定我是否回答了你的问题或帮助,但祝你的项目好运!