关于 NHibernate 需要一个设计器,我们来看看 NH 的用户是怎么比较 EF 和 NH 的。大多数的用都认为,
和 EF 相比,NH 有两个做得不够的地方:
1、对 Linq 的支持很差,很多查询没有实现。
2、缺乏一个象 EF 那样的设计器。
NH 不但需要一个设计器,而且需要一个很好用的设计器。有朋友把设计器等同为生成代码和映射,这是错误的,那只叫代码生成器,而不是设计器。设计器除了能生成代码和映射,还有一个很重要的功能,就是建模。
传统的软件开发流程是:数据库建模 -> 生成物理模型(即建立数据库) -> 由数据库生成代码和映射(代码生成器,你喜欢 Coding 也行)-> 编码
设计器可以让你直接从领域模型开始,而不是数据库,让你彻底的面前对象。
基于对象的建模 -> 生成代码和映射 -> 生成物理数据库
也许你可能会说,我直接在头脑中建模,然后 Code firest 和 映射,再生成物理数据库,行不?如果你是一个做的项目,如果对象很少,的确问题不大。如果多人一起开发的项目,有几百个的对象(即表),一个可视化的模型是很有必要的。
1、 一个可视化的模型,让你方便和其它开发人员进行讨论,或者让别人更加容易理解。
2、可以让你理清各个对象之间的关系。
哪怕你不需要建模,一个设计器也是很有必要的,它可以让 NH 变得更加容易使用。
对于新手,可能要花上一、两天,才能弄出一个“Hello world” 的 Demo 出来,有了设计器,几份钟就能上手,大大降低了 NH 的入门门槛。(我会通过一教程说明这个问题),设计器不但能替你完成实体类代码的编写,和映射的生成。还可以自动引用所需要的 Assembies ,并且设置好一切。
总之,用不用随便你,反正我是用的。 ^_^
欢迎各位朋友拍砖。