您如何决定使用哪种ORM?

时间:2008-11-04 16:49:15

标签: orm data-layers

Castle Active Record? 简单的NHibernate? 亚音速? 实体? 像Nettiers这样的东西?

我想用一个,但我不知道决定。 Nhibernate似乎过度杀戮和复杂,但广泛使用。亚音速似乎很简单。但它稳定吗?我有CodeSmith,我被指向Nettiers,它看起来也很整洁,但也很复杂。其他人如何评估和决定使用什么?你是否用每个项目制作小型简单项目才能看到这些功能? Eeeny,Meenie,Miney,Moe?

4 个答案:

答案 0 :(得分:2)

我喜欢NHibernate。它实际上并不复杂,它具有惊人的灵活性,并且不会使用属性和其他不应该存在的时髦东西污染您的对象模型。

我发现活动记录模式与C#这样的静态类型语言不太匹配,就像域模式一样,因为它可以使模拟更复杂。

答案 1 :(得分:1)

我也更喜欢NHibernate,并同意如果你付出一点努力来学习它,你会发现它并不像它最初出现那么复杂。你可以走很长的路,而不必了解它的所有功能。

但是,您应该始终为手头的工作选择合适的工具。如果您正在构建一个接近真实域模型的应用程序,那么NHibernate将自动选择IMO。你提到的其他人不是真正的对象关系映射器,而是代码生成器。这本身并不一定是坏事,但你必须评估一种方法何时比另一种方法更合适

答案 2 :(得分:0)

因为问题是“我该怎么选择”而不是“我应该选择什么”......:

我会选择最容易使用的那个。 然后我在谷歌上研究一下,看看它是否稳定。 然后我会自己进行压力测试,有一些多线程的优点和一个具有不同类型的关系和继承的域结构。

你也可以受到http://polepos.sourceforge.net/的启发 它是数据库性能基准测试,但主要用于java框架。如果你准备好了,你可以将源代码改编为.net,它并不是非常复杂。

那就是说,我目前最喜欢的是ActiveRecord和LINQ。

答案 3 :(得分:0)

我认为决定哪一个的最佳方法是尝试找到在您正在评估的ORM中有解决方案的常见问题。你会得到关于编程范式,风格,代码量,复杂性和那种东西的想法