我有点惭愧地说,我从来没有使用过ORM;正如您可能还记得的,我的大部分职业经验是使用经典ASP,而我所做的小.NET往往只是维护。
为了我自己的职业生涯,也为了准备一个新的工作项目(终于用.NET完成了!)我正在考虑增加一个ORM到我的技能集-作为受虐者,我是,我也要看看TDD,而我正在为这个项目。
无论如何,我正在使用.NET 3.5作为项目(或计划,无论如何),所以我试图决定我想要选择什么ORM;就像我说的那样,我不太熟悉他们,但我知道他们应该做什么,以及他们是如何做的。我的选择基本上取决于NHibernate或LINQ/Entity。我没有使用过任何东西,但是我看到了一些LINQ2SQL和NHibernate的演示。
NHibernate似乎总体上更加健壮(Linq2Sql甚至不是一个“真正的”ORM),并且在ALT.NET社区中大量使用,我想进一步探讨。然而,EF是微软的产品,因此,大多数开发团队都会大量使用EF,他们只会使用微软推出的任何产品,而不会考虑任何替代方案。
我听说过EF的优点和坏处,但如果我在一家拥有真正的开发团队的公司找到一份更好的工作,我想选择一些能给我一个良好的基础,也能让其他雇主觉得很好的东西。
编辑:--我应该补充一点,如果选择ORM有任何关系,应用程序必须处理现有的数据库。
编辑(02/15/20096:48 PM):它将使用的唯一数据库是运行在Windows 2003上的SQLServer2005Standard。考虑到这是一个工作项目,我的目标是选择一些不需要很长时间才能跟上进度的东西(因为我需要提高效率,“学习一种新工具”在管理层看来不太好),但比滚动我自己的DAL更好。当时我还没有决定应用程序是智能客户端还是ASP.NET应用程序,但是其中的一部分很可能是使用ASP.NET MVC完成的。
发布于 2009-02-15 15:13:15
为什么在学习的时候只限制自己一个人?为什么不试一试,看看哪一个对你来说最合适呢?然后,你可以开始深入研究这些技术,并从中获得更多。
就我个人而言,我会从LINQ开始,因为它非常简单。玩它只是为了适应如何使用ORM的想法。您会惊讶于它是多么简单,它是多么容易开始,然后您可能会遇到许多痛苦点,引导一些人到实体框架。
一旦你稍微使用了实体框架,你要么会对它感到满意,要么你会想知道nHibernate和相关问题中提到的其他问题有什么大不了的。
在我看来,正是在那个时候,你才会为成功做好像nHibernate这样的事情做好准备,这可能是第一次进入ORM-land时很难学到的东西。
无论哪种方式,我都不会对“我应该尝试哪一种”的思想流派开具规定。试一试,我说。
https://stackoverflow.com/questions/550929
复制相似问题