城堡活动记录?普通的NHibernate?亚音速?实体?像Nettiers这样的东西?
我想用一个,但我知道的不够多,无法决定。Nhibernate 似乎过于杀戮和复杂,但被广泛使用。亚音速看起来整洁而容易。但它稳定吗?我有 CodeSmith,我被指向 Nettiers,它看起来也很简洁,但也很复杂。其他人如何评估和决定使用什么?您是否制作了每个简单的小项目以查看功能?Eeeny、Meenie、Miney、Moe?
城堡活动记录?普通的NHibernate?亚音速?实体?像Nettiers这样的东西?
我想用一个,但我知道的不够多,无法决定。Nhibernate 似乎过于杀戮和复杂,但被广泛使用。亚音速看起来整洁而容易。但它稳定吗?我有 CodeSmith,我被指向 Nettiers,它看起来也很简洁,但也很复杂。其他人如何评估和决定使用什么?您是否制作了每个简单的小项目以查看功能?Eeeny、Meenie、Miney、Moe?
我喜欢NHibernate。它实际上并没有那么复杂,它出奇的灵活,它不会用属性和其他不应该存在的时髦东西污染你的对象模型。
我发现活动记录模式不像域模式那样适合像 C# 这样的静态类型语言,因为它会使模拟变得更加复杂。
我也更喜欢 NHibernate,并且同意如果你花一点精力去学习它,你会发现它并不像最初看起来那么复杂。您可以走很长一段路,而无需了解其所有功能。
但是,您应该始终为手头的工作选择正确的工具。如果您正在构建一个具有接近真实领域模型的应用程序,那么 NHibernate 将是 IMO 的自动选择。您提到的其他人不是真正的对象关系映射器,而是代码生成器。这本身不一定是坏事,但您必须评估一种方法何时比另一种更合适
由于问题是“我该如何选择”而不是“我应该选择什么”......:
我会先选择一个似乎最容易使用的。然后我会在谷歌上研究一下,看看它是否稳定。然后我会自己对它进行压力测试,具有一些多线程优点和具有不同类型关系和继承的域结构。
您还可以从http://polepos.sourceforge.net/获得灵感, 它是一个数据库性能基准,但主要针对 java 框架。如果您愿意,您可以将源代码改编为 .net,它并不是非常复杂。
也就是说,我目前最喜欢的是 ActiveRecord 和 LINQ。
我想决定哪一个的最佳方法是尝试找到一个在您正在评估的 ORM 中具有解决方案的常见问题。你会得到关于编程范式、风格、代码量、复杂性和诸如此类的想法