【发布时间】:2011-10-18 13:43:27
【问题描述】:
我正在考虑为我的 ASP.NET MVC 网站应用 CQS,但这是一件非常简单的事情。我不是指 CQRS,因为我想对查询和命令部分使用相同的数据源,因此我不需要事件溯源和其他更复杂的模式。
所以,我的想法是:
- 查询和命令部分使用相同的数据库
- 对于查询部分,用实体框架和WCF数据服务暴露数据库视图,让具体的视图返回给客户端,查询数据变得非常容易
- 对于命令部分,使用实体框架和单向WCF服务公开数据库表,并使用DDD原则。
我要实现的主要目标是:
- 由单向服务操作执行并由富域模型处理的简单命令,客户端只需要传递执行命令真正需要的数据
- 对简单视图的灵活查询,专为客户端的特定 UI 而设计
这有意义吗?
【问题讨论】:
-
这对我来说很有意义。对于中小型系统,您不需要完整 CQRS 系统的分布模型和总线架构。
-
谢谢,我想如果我需要完整的系统来处理某些部分,那是可能的,因为我的接口已经分开了......
-
没错。我认为最好先将系统演化为单独的关注点(横向扩展),然后自己使用 CQRS 作为最后的手段。
-
如何处理命令中的错误?我面临与您相同的设置(WPF 而不是 ASP .NET),但我不确定该怎么做 - 我是否应该始终“假设”命令已成功?如果没有怎么办?
-
我的命令会抛出异常,由全局异常处理程序处理。
标签: c# domain-driven-design command cqrs