是時候總結一下本系列文章了。還是應該自我批評一下,由於個人雜事多,加上工作繁忙,整個系列文章弄了大半年才斷斷續續寫完。在撰寫文章的過程中,也得到了大家的理解與支援,並讓更多的朋友開始關注領域驅動設計,很是感激!在接下來的其它博文中,我將繼續討論領域驅動設計的實踐經驗。
本系列文章首先從領域驅動設計的基礎思想出發,討論了基於.NET EntityFramework的領域驅動設計經驗,這包括對實體、值對象、工廠和倉儲實現方式的討論、對EntityFramework所提供的開發工具功能點的討論,還包括了規約模式及其.NET實現。從討論中我們可以瞭解到,目前Microsoft .NET EntityFramework在對領域驅動設計的支援上還是有一些不足的地方,比如對值對象的支援、對實體行為以及事件驅動的支援,但同時我們也看到了.NET在DDD上取得的巨大進步,這包括:具有DSL(Domain Specific Language)特質的Language-integrated Query (LINQ)(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之領域驅動設計實踐:總結
再次感謝讀者朋友們對本部落格的關注與支援!