2009-02-05 36 views
3

我需要一个.Net ORM,并且我听到了一些关于此的好东西。我过去曾经使用NHibernate,但这似乎使许多事情变得更容易。你对Castle ActiveRecord有什么看法?

但是,有两件事让我有些紧张。

  1. 它使用NHibernate的1.2,这似乎老
  2. 它仍然是任何使用它与它的最后一个版本18个月前

的RC?他们推荐它的生产环境?它还在积极发展中吗?

具体来说,是否值得使用ActiveRecord而不是简单的'ol NHibernate?

回答

2

他们每晚都会编译Castle,它现在被编译成NHibernate 2.0甚至2.1。很少有人使用RC3,我相信很快会有GA版本发布。但是,尽管ActiveRecord大大简化了配置,并且即使在查询等情况下也可以轻松使用NHibernate,但我经历过大部分时间我仍然回到在代码中使用NHibernate逻辑,因此没有考虑到ActiveRecord其他方面的优势(特别是当涉及到ActiveRecord不支持的二级缓存等)时。即使HQL等要求使用朴素的NHibernate逻辑在我的经验中也很有用。

因此,可能值得使用直接的NHibernate并跳过ActiveRecord部分,除非您构建了一个非常简单的应用程序,其中性能调整确实不是问题,因为您现在有许多其他配置选项。

2

它违反了域驱动的设计,因为它强制你添加属性到你的域对象并通过它们使用活动记录模式,理想情况下它应该保持简单的POCO。与传统三层设计相比,领域驱动设计的兴起意味着它可能不是一个长期熟悉的好库(也许直接用于nhibernate)。另一方面,这是一个优秀而强大的图书馆,我使用它的项目是成功的。

+2

虽然您对属性正确,但仍然可以以DDD方式使用AR ... i.o.w - 没有活动的记录模式。 你通过ActiveRecordMediator做到这一点 2009-02-05 15:14:47

+0

的确如此,但我读了一些关于它如何不那么简单的博客。但也许我落后于时间 – 2009-02-05 15:16:36

7

是的,值得使用ActiveRecord而不是普通的NHibernate,因为它极大地简化了配置。

相关问题