从ORMS开始 - Nhibernate

时间:2010-03-05 17:37:06

标签: nhibernate orm

我开始深入研究ORM的领域,特别是NHibernate开发.NET数据感知应用程序。我必须说学习曲线非常陡峭,应注意很多事情。显然,它实际上改变了数据感知应用程序的方式,编码方式,开发方式以及几乎所有内容。

无论如何,我想询问您在决定使用或不使用应用程序中的ORM时是否设置了一些参数?那么你如何决定一个人们需要的方法来使它对你的组织有价值呢?

我现在工作的组织显然已经在后端运行了很多SQL和数据访问,我必须说这些类/方法/程序已成功执行了提供所需数据的任务。这是必需的。我认为将其中的一部分映射到ORM并获得与公司过去几年相同的商业价值将是一项巨大的努力。

尽管如此,我知道如果正确实施,ORM为应用程序与数据库服务器通信铺平了道路。我必须承认我处于学习阶段,我可能需要所有的帮助,资源和指导才能实现这一转变。我也在考虑从Manning购买这本书,但我觉得NHibernate的这么多变化,这本书可能有点过时了。或许等待关于NHibernate的Packt书(2010年5月发布?)将有助于我更好地起步和运行。

请分享您的想法。顺便说一下,如果您还可以指向一个使用NHibernate + Visual Web Developer 2008 Express和SQL Server的小型示例Web应用程序,我将非常感激。

感谢。

2 个答案:

答案 0 :(得分:2)

对我而言,缺点如下:

如果您没有使用已建立的ORM,并且您正确开发(意味着您重构了重复并希望尽可能简化),您将最终通过数据访问层的演变构建自己的ORM。

然后问题变成: “我是否希望我的开发人员花时间学习我自己开发的ORM的特性,或者学习那些记录良好且经过充分测试的ORM?”

此外: “如果我正在招聘新的开发人员,那么引入一个了解我们正在使用的已建立的ORM工具的开发人员,而不是在我建立的这个东西上培训某个人会不会更好?”

我使用NHibernate,特别是Fluent - 而且它很棒;如果给出了选择,我就不会以任何其他方式在RDBMS上开发。

要成功使用ORM,您必须确保正确规范化,并将数据库用于设计目的,存储数据。

答案 1 :(得分:1)

我在以下情况下不使用orm:

  1. 我不使用关系数据库(关系数据库不是每个应用程序的最佳数据库选择)
  2. 数据库的表格非常少。 (没有orm,我可能需要更少的代码)
  3. 我使用一个非常简单的数据库,可以通过简单的命名映射到代码 约定。 (映射到哑DTO类和所有查询,例如select * from tablename,其中id = @id)
  4. 学习一个好的orm值得花时间和精力,当你大量使用关系数据库时,它可以节省你编写很多代码。 你可以通过stackoverflow搜索找到关于NHibernate的示例应用程序/教程/视频。还有另一本正在编写的书,也许可以通过早期访问程序阅读它。