我开始深入研究ORM的领域,特别是NHibernate开发.NET数据感知应用程序。我必须说学习曲线非常陡峭,应注意很多事情。显然,它实际上改变了数据感知应用程序的方式,编码方式,开发方式以及几乎所有内容。
无论如何,我想询问您在决定使用或不使用应用程序中的ORM时是否设置了一些参数?那么你如何决定一个人们需要的方法来使它对你的组织有价值呢?
我现在工作的组织显然已经在后端运行了很多SQL和数据访问,我必须说这些类/方法/程序已成功执行了提供所需数据的任务。这是必需的。我认为将其中的一部分映射到ORM并获得与公司过去几年相同的商业价值将是一项巨大的努力。
尽管如此,我知道如果正确实施,ORM为应用程序与数据库服务器通信铺平了道路。我必须承认我处于学习阶段,我可能需要所有的帮助,资源和指导才能实现这一转变。我也在考虑从Manning购买这本书,但我觉得NHibernate的这么多变化,这本书可能有点过时了。或许等待关于NHibernate的Packt书(2010年5月发布?)将有助于我更好地起步和运行。
请分享您的想法。顺便说一下,如果您还可以指向一个使用NHibernate + Visual Web Developer 2008 Express和SQL Server的小型示例Web应用程序,我将非常感激。
感谢。
答案 0 :(得分:2)
对我而言,缺点如下:
如果您没有使用已建立的ORM,并且您正确开发(意味着您重构了重复并希望尽可能简化),您将最终通过数据访问层的演变构建自己的ORM。
然后问题变成: “我是否希望我的开发人员花时间学习我自己开发的ORM的特性,或者学习那些记录良好且经过充分测试的ORM?”
此外: “如果我正在招聘新的开发人员,那么引入一个了解我们正在使用的已建立的ORM工具的开发人员,而不是在我建立的这个东西上培训某个人会不会更好?”
我使用NHibernate,特别是Fluent - 而且它很棒;如果给出了选择,我就不会以任何其他方式在RDBMS上开发。
要成功使用ORM,您必须确保正确规范化,并将数据库用于设计目的,存储数据。
答案 1 :(得分:1)
我在以下情况下不使用orm:
学习一个好的orm值得花时间和精力,当你大量使用关系数据库时,它可以节省你编写很多代码。 你可以通过stackoverflow搜索找到关于NHibernate的示例应用程序/教程/视频。还有另一本正在编写的书,也许可以通过早期访问程序阅读它。