是时候总结一下本系列文章了。还是应该自我批评一下,由于个人杂事多,加上工作繁忙,整个系列文章弄了大半年才断断续续写完。在撰写文章的过程中,也得到了大家的理解与支持,并让更多的朋友开始关注领域驱动设计,很是感激!在接下来的其它博文中,我将继续讨论领域驱动设计的实践经验。
本系列文章首先从领域驱动设计的基础思想出发,讨论了基于.NET EntityFramework的领域驱动设计经验,这包括对实体、值对象、工厂和仓储实现方式的讨论、对EntityFramework所提供的开发工具功能点的讨论,还包括了规约模式及其.NET实现。从讨论中我们可以了解到,目前Microsoft .NET EntityFramework在对领域驱动设计的支持上还是有一些不足的地方,比如对值对象的支持、对实体行为以及事件驱动的支持,但同时我们也看到了.NET在DDD上取得的巨大进步,这包括:具有DSL(Domain Specific Language)特质的语言集成查询(LINQ)、面向实体的领域对象模型(LINQ to SQL是面向数据的)、复合数据类型支持。毕竟.NET EntityFramework是一种产品,它需要考虑广大用户的需求,所以也会包括一些Anti-DDD的元素在里面。
在讨论了经典DDD的EntityFramework实践经验之后,本系列文章还引出了两个扩展话题:服务与CQRS体系结构模式。CQRS体系结构模式是近年来DDD社区总结出来的一种新的DDD实践模式,也是目前DDD社区中讨论的较多的一种体系结构模式。它以CQS思想为基础,以事件溯源(Event Sourcing)为核心,将应用系统的命令与查询实现职责分离,从而获得Event Auditing的功能,同时大大提高了系统的运行效率,并为架构技术选型和团队资源配置(Resource Configuration)带来了广阔空间。有关CQRS的设计与实现,我会在后续的文章中继续介绍。
为方便阅读,在此重新列一下本系列文章的目录,有兴趣的朋友可以逐一查看。
- EntityFramework之领域驱动设计实践 - 前言
- EntityFramework之领域驱动设计实践(一):从DataTable到EntityObject
- EntityFramework之领域驱动设计实践(二):分层架构
- EntityFramework之领域驱动设计实践(三):案例:一个简易的销售系统
- EntityFramework之领域驱动设计实践(四):存储过程,领域驱动的反模式
- EntityFramework之领域驱动设计实践(五):聚合
- EntityFramework之领域驱动设计实践(六):模型对象的生命周期 - 工厂
- EntityFramework之领域驱动设计实践(七):模型对象的生命周期 - 仓储
- EntityFramework之领域驱动设计实践(八):仓储的实现(基本篇)
- EntityFramework之领域驱动设计实践(九):仓储的实现(深入篇)
- EntityFramework之领域驱动设计实践(十):规约(Specification)模式
- EntityFramework之领域驱动设计实践【扩展阅读】:服务(Services)
- EntityFramework之领域驱动设计实践【扩展阅读】:CQRS体系结构模式
- EntityFramework之领域驱动设计实践:总结
再次感谢读者朋友们对本博客的关注与支持!