写在前面
其实这系列文章已经被很多网友转载过了,我自己也在前面的博客中给出了原文的链接。但毕竟博客园的人气更旺,加上不少网友强烈要求我把文章转贴到博客园,因此最终下定决心,将这系列文章重新整理并转贴在博客园上。
根据网友的讨论结果,以及自己在实践中的不断积累,在整理的过程中,我会将原文中的描述作相应调整。不仅如此,也有不少关心领域驱动设计的网友在原文的评论栏目中提了问题或作了批注,我也针对网友的问题给予了细致的答复,为了能够让更多的朋友了解到问题的本质,本次整理稿会将评论部分也一一列出,供大家参考。
EntityFramework
EntityFramework是微软继LINQ to SQL之后推出的一个更为完整的领域建模和数据持久化框架。初见于.NET Framework 3.5版本,4.0的.NET Framework已经集成了EntityFramework。使用.NET 4.0的朋友就不需要下载和安装额外的插件了。与LINQ to SQL相比,EntityFramework从概念上将系统设计的关注点从数据库驱动转移到模型/领域驱动上。
领域驱动设计(DDD)
领域驱动设计并不是一门技术,也不是一种方法论。它是一种考虑问题的方式,是一种经验积累,它关注于那些处理复杂领域问题的软件项目。为了获得项目成功,团队需要具备一系列的设计实践、开发技术和开发准则。与此相关的技术与设计/代码重构也是领域驱动设计讨论的重点。
本系列文章就是着重讨论EntityFramework在领域驱动设计上的实践,也希望DDD与.NET的爱好者能够从文中获得启发,将解决方案用在自己的实际项目中。同时也欢迎各位朋友对系列文章提出宝贵意见,欢迎大家共同参与讨论。
有关领域驱动设计的讨论,可以参加博客园技术小组“领域驱动设计DDD”,当然,也欢迎有兴趣的朋友加入DDD/TDD讨论QQ群:14138539。