【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

基于 C#的 CQRS 教程发布

  • 2013-06-23
  • 本文字数:732 字

    阅读完需:约 2 分钟

Jonathan Worthington Carl 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 )关注我们,并与我们的编辑和其他读者朋友交流。

2013-06-23 08:023116
用户头像

发布了 81 篇内容, 共 22.8 次阅读, 收获喜欢 4 次。

关注

评论

发布
暂无评论
发现更多内容

双证在手,运维无忧!明道云通过两项国家级质量认证

明道云

Druid 集群方式部署 —— 启动服务

HoneyMoose

我受够WIN10了!!!

Jackpop

JavaScript代码片段学设计模式

devpoint

设计模式 工厂模式 8月日更

外包三年给整废了,备战两月终拿到4家大厂offer,阿里P6+这回稳了

Java架构师迁哥

DataFrame数据创建:10种方式任你选

Peter

Python 数据分析 pandas

yyds,Win10真香!!!

Jackpop

前端之数据结构(三)集合和字典

Augus

数据结构 8月日更

深入了解NIO底层原理

陈皮的JavaLib

Java 面试 nio 8月日更

基于 HLS 创建 Golang 视频流服务器

声网

音视频 HLS

区块链技术改进身份和访问管理(IAM)的10种用例

CECBC

Java操作Office:POI之word生成

程序员架构进阶

Java Apache POI 技术应用 8月日更 代码实战

Black Hat 2021上的七大网络威胁趋势

百度开发者中心

最佳实践 方法论

明道实施与需求的耦合

明道云

分布式认知工业互联网平台如何赋能企业数字化转型?

CECBC

【前端 · 面试 】HTTP 总结(六)—— HTTP 版本区别

编程三昧

面试 HTTP 8月日更 http版本

Druid 集群方式部署 —— 配置调整

HoneyMoose

Druid 集群方式部署 —— 端口调整

HoneyMoose

linux中常见工具安装问题集锦

liuzhen007

8月日更

使用 MVC 架构构建 Flask CRUD 应用程序

DisonTangor

Python flask

有状态流处理简介(一)

数据与智能

flink 批处理 状态

☕【Java技术指南】教你如何使用【精巧好用】的DelayQueue(延时队列)

洛神灬殇

Java 延迟队列 8月日更 DelayedQueue

hbase运维故障案例分析

GrowingIO技术专栏

大数据 运维 HBase

网络攻防学习笔记 Day97

穿过生命散发芬芳

态势感知 网络攻防 8月日更

Pandas系列_DataFrame数据筛选(上)

Peter

Python 数据分析 pandas

Druid 集群方式部署 —— 配置 Zookeeper 连接

HoneyMoose

字节跳动旗下大力教育大批量裁员,赔偿 n+2

hanaper

在明道云上搭建的应用维护管理的几点建议

明道云

MQTT-消息传输协议

一个大红包

8月日更

浅谈限流组件的应用和设计原则

xiaoxi666

redis sentinel 分布式限流 redisson redis-cell

这是一次鸡肋的代码审计

网络安全学海

网络安全 信息安全 计算机 渗透测试 安全漏洞

基于C#的CQRS教程发布_语言 & 开发_Jan Stenberg_InfoQ精选文章