2009-07-10 89 views
2

嗨,我似乎在一个ORM工具十字路口,并希望遇到类似挑战的人的一些建议。在过去,我一直在使用CodeSmith和NetTiers Templates来生成我的DAL,这一切都很好,但是我决定放弃这个或那个原因。ORM工具 - 十字路口?

所以我在一个十字路口,并发现如下: -

  1. 我已经看过PLINQO(LINQ到SQL),这似乎但是做一个盛大的工作与微软不确定的LINQ到SQL这可能不是一个好的选择。
  2. Linq to Entities - 这仍然处于起步阶段,我可能是错的,但人们抱怨膨胀和如何存储过程
  3. 我看了nHibernate,这可能是最好的选择,但它似乎是一个陡峭学习曲线
  4. 同上LLblgen
  5. 亚音速 - 不确定吗?
  6. 坚持使用久经考验的NetTiers,忘记了臃肿,忘记了你不得不使用企业库,忘记了它所创建的动态SQL,忘记了他们在论坛上几乎没有活动,忘记了这一点并使用它!

我已经拥有CodeSmith中,不希望到别处买什么东西,产生必须以中等信托模式下工作的代码...

可能还有其他我已经错过了。我正在寻找解释为什么ORM工具值得关注的答案。

谢谢理查

+0

看到这个:http://stackoverflow.com/questions/567304/which-orm-tool-should-i-use-for-net-development – 2009-07-10 09:22:50

+0

你能给你的项目和要求更多的细节? ORM的选择有很多方面可以依赖。例如,你打算开始新的项目,还是需要支持遗留数据库? – 2009-07-10 12:44:25

+0

@Alex - 将是新项目,但是我可以看到我可能需要转换一些旧项目... ASP.NET 2.0 + 必须在Medium Trust模式(mosso云托管)中运行没有问题 Something这并不会产生无穷的膨胀 – Rippo 2009-07-10 13:15:08

回答

2

我在最后一个项目中使用了.netTiers我自己。但在我正在尝试Linq 2实体的那一刻我正在工作。你对Linq2EF没有成熟是正确的。我们一直都在喋喋不休,这就是为什么我们使用从EDMX文件生成代码的T4模板。我们还更改了这些模板,因此我们有Business Objects,用于注入的接口和DAL + DAO。我们很高兴现在它如何工作。好处是我们可以使用LINQ对实体。

否则我也建议流利的nHibernatelink)给你。这是我们也考虑过的事情之一。但是你必须自己写很多东西。这不像你习惯在.netTiers中为你生成所有代码。

由于亚音速3link)只是大约一个星期大,我建议你看看。根据我所看到的,它看起来很有希望。它使用T4,所以你可以切片&骰子,以适应您的需求。

+0

嗨,感谢您的关注,请看Subsonic和Fluent nHibernate。 另一个快Q,你提到T4模板是什么? 非常感谢Richard – Rippo 2009-07-10 08:47:46

0

由于使用ORM的原因,这里有一个指向blog post by Glenn Block的链接,它说明了一切。至于我的经验,就在一年前,我正在寻找使用ORM,我选择了NHibernate。

坚持我是一个解决的问题,除了从我的领域模型映射到我的关系数据的某种形式,这是我不必担心了。我看了一下Linq To SQL,但它并没有给我足够的控制权,以便如何将数据映射到我的对象,而实体框架也没有足够满足我的喜好。我的一些团队正在研究使用NetTiers和CodeSmith的另一个重要项目,就像你说的那样,代码的膨胀,代码生成(以及它的绝对数量)让我感到有点儿不高兴。最后,我选择了NHibernate,因为对我而言,它是最成熟的ORM之一,它提供的功能不仅支持精细粒度的对象模型,而且它内置了查询工具,并且本质上解决了其他性能问题如缓存。

是的,我承认学习曲线非常陡峭,但如果你花时间,你将从中获得的好处是巨大的。 Ayende RahienFabio Maulo的博客是关于NHibernate的信息。通过这个LINQ provider有一些LINQ对NHibernate的支持,但是Steve Strong目前正在整合NHibernate中提供完整LINQ支持的功能。所以这一切都是为了NHibernate,但在一天结束时,这取决于你最舒服的。

1

我试了几个星期,最后和NHibernate解决了。定制非常简单。有一条学习曲线,需要更长的时间来设置类似linq to sql的东西,但其优点是它看起来不像是魔术。您将了解它是如何工作的,并且能够根据您的需求准确定制它。社区也非常好,有很多可用的文档。在我看来,它是现代ORM(无代码生成,可以使用POCO)和成熟度之间的良好平衡。

0

我觉得两个最有信誉和强大的ORM工具现在是NHibernate的LLBLGEN临

nHibernate =非常领域驱动导向。

LLBLGen Pro =面向数据驱动。

他们都非常出色,而且对于每个项目,根据其性质,一个可能比另一个更合适。它也经常归结为个人选择和偏好甚至开发团队的文化。

就像我说的那样,总的来说,它们都非常出色,它们都有其轻微的优点/缺点。