架构:简单的CQS

我正在考虑将CQS应用于我的ASP.NET MVC网站,但这非常简单。 我不是指CQRS,因为我想为查询和命令部分使用相同的数据源,因此我不需要事件源和其他更复杂的模式。

所以,我想到的是:

  • 使用相同的数据库进行查询和命令部分
  • 对于查询部分,使用entity framework和WCF数据服务公开数据库视图,以便将特定视图返回给客户端,查询数据变得非常容易
  • 对于命令部分,使用entity framework和单向WCF服务公开数据库表,并使用DDD原则。

我想要实现的主要是:

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

这有意义吗?

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

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

在我看来,CQS和CQRS非常相似,其中CQRS具有单独的读写存储的概念(并且有些人认为写存储甚至可能不是必需的)。 事件采购实际上并不是CQRS的一部分 – 它可以说是一个附加组件,可以很好地适应CQRS的分布式特性。

您放弃了自己的方法是数据的一些可扩展性,因为您使用视图展平了数据。 但如果您的应用程序不需要它,那么那里没有问题。

此外,阅读Udi Dahan关于何时避免CQRS的文章可能会有所帮助。 它可能有助于certificate您的决定。 当他释放它时引起了不小的轰动。 但在他和Greg Young之间,他们是CQRS的专家。

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