基于 C# 的 CQRS 教程发布

  • Jan Stenberg
  • 廖煜嵘

2013 年 6 月 23 日

话题:语言 & 开发架构

Jonathan WorthingtonCarl Mäsak编写并开源了一款新的CQRS(命令查询职责分离模式)初学者教程,它旨在帮助开发者在.NET 平台上实现 CQRS。

这两位开发者指出这不是一个框架,而是做为对学习 CQRS 感兴趣的开发者的“一堆 C# 代码” ,如果有可能用户可以修改代码满足自己的需求,并将它作为自己基于 CQRS 的系统的基础。

该教程中的代码是一个基于咖啡馆领域模型,其主要概念集中在一个 tab 页中,通过它可以跟踪进入咖啡馆的个人或团体。教程本身划分为五个不同步骤,依次为设计、领域逻辑、读模型,接下来是整合到 ASP.NET MVC 应用中的模型。

在该教程中,Jonathan 和 Carl 也带出一些值得思考的地方,比如假如用户要扩展例子到生产环境中,需要考虑事务和最终的一致性。

Jonathan 和 Carl 强调,除非用户正处在学习阶段,否则不应该一开始就学习 CQRS,因为它是新兴事物,如果用户的架构目标如下所述则应该考虑学习:

我想以命令 / 事件的方式去实现我的领域模型逻辑,因为用这种方式去建模和编写测试将帮助我交付满足客户需要的系统。我想坚持使用事件存储但它不能满足查询需求。因此,我也需要使用关系数据库。这意味着读和写需要通过不同的代码路径去实现,这种情况下将可以适合使用 CQRS。

CQRS 是一种日益受到关注的架构模式。由Eric Evans及其他人维护的DDD 社区网站,特别指出了其重要性:

CQRS 和事件溯源(Event Sourcing)是两种实现 DDD 的紧密的架构方法,他们在过去几年一直是 DDD 中的热点话题。

查看英文原文:New C# based CQRS Tutorial available

感谢水羽哲对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

语言 & 开发架构