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

因此,我想到的是:

  • 将相同的数据库用于查询和命令部分
  • 作为查询部分,使用 Entity Framework 和WCF数据服务公开数据库 View ,以便将特定 View 返回给客户端,查询数据变得非常容易
  • 作为命​​令部分,使用 Entity Framework 和单向WCF服务并使用DDD原理公开数据库表。

  • 我要实现的主要目的是:
  • 由单向服务操作执行并由富域模型处理的简单命令,客户端仅需要传递执行命令
  • 真正需要的数据
  • 用于简单 View 的灵活查询,专为客户端的特定UI设计

  • 这有意义吗?

    最佳答案

    因此,回答您的问题,是的,我认为这是有道理的。

    我不确定您还在寻找什么。我认为您采用的方法很有意义,应该可以为您提供所需的服务。

    在我看来,CQS和CQRS非常相似,其中CQRS具有单独的读写存储区的概念(有些人认为甚至不需要写存储区)。事件源实际上并不是CQRS的一部分-可以说,它是一个附加组件,非常适合CQRS的分布式特性。

    您要放弃的方法是数据的某些可伸缩性,因为您是使用 View 来展平数据的。但是,如果您的应用程序不需要它,那就没有问题了。

    同样,阅读Udi Dahan的article关于何时避免CQRS可能很有用。它可能有助于证明您的决定合理。当他释放它时引起了轰动。但是在他和Greg Young之间,他们是CQRS的专家。

    我不确定我是否回答了您的问题或提供了帮助,但是祝您项目顺利!我希望这有帮助。

    关于c# - 体系结构: simple CQS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6917843/

    10-12 01:15