召唤NHibernate和Linq to SQL高手 有没有哪位朋友用过这两种方法,比较一下pros&cons. 我们开发小组前几个项目是用的Linq to SQL, 一致认为对于快速开发,小型项目,Linq to SQL是绝对的好选择。最近小组又在一起开发一个大一点的项目,试着使用NHibernate, 到目前为止,我们解决了遇到的问题, NHibernate看起来没有问题。mapping的时候,我们对HHibernate的配置不是很熟,但是还是解决了。如果用Linq to SQL,更简单, 只要搞一个DBML,直接把表拖进来就能用了。请大家对这两种方法的优缺点评论一下。还有我们小组的老大写了一个blog也是关于这个,大家可以去看,提点评论。欢迎技术讨论!非常感谢! http://derans.blogspot.com/2009/07/linq-to-sql-vs-nhibernate.html
------解决方案-------------------- 正在学习LINQ
------解决方案-------------------- 顶
------解决方案-------------------- 关键看你的应用程序的需求,如果规模不大,而且LINQ to SQL能够解决你的问题,何乐而不为? 个人偏向于NHibernate,因为从领域驱动设计的方向考虑,LINQ to SQL已经本末倒置了:先有数据库表的结构再有领域实体,这是面向数据库的设计,而不是领域驱动设计。
------解决方案-------------------- 优缺点: LINQ to SQL简单,对于从数据库设计出发的应用,是一个不错的选择,但只能适用于小型软件系统,因为面向数据库的设计会麻痹人的“面向对象”神经,对于业务复杂的大型系统,面向数据库的设计会使人迷失方向。 NHibernate复杂,配置和事务处理都需要经过深思熟虑,但它的引入会将领域实体与基础结构层实现解耦,是符合领域驱动设计思想的。
------解决方案--------------------
真正的领域驱动设计,你是不会去考虑你的系统是否有数据库的。Evans的DDD中很少提及数据库这类概念,而更多的是在讲仓储。 LINQ to SQL还有个致命伤,就是对值对象的支持。Jimmy在InfoQ中讨论过这个问题,由于LINQ to SQL不像NHibernate那样能够很好地支持值对象,因此,他觉得自己很难适应LINQ to SQL的做法。