nhibernate 1.2和2.0之间的差异

时间:2009-05-27 16:09:14

标签: c# .net nhibernate

我似乎无法找到有关nhibernate 1.2和2.0之间实际差异的任何信息。我已经找到了有关升级可能出现的问题的信息,但没有关于包含哪些新功能或任何有关性能差异的信息。

如果两者之间存在显着差异,可以使我们的开发更高效或更容易,那么我想建议升级到我的主管。如果没有任何东西值得搞乱,那么我无法看到尝试升级当前稳定的库的重点。

我打算发布我已经审核过的信息的链接,但我不被允许,因为我被认为是新用户。

1 个答案:

答案 0 :(得分:4)

我花了6个月的时间来完成升级工作。让我简单说明我们注意到的一些好处,以便您可以显示以下权力:

  • 会话启动时间大幅减少。这是SessionFactory在启动时初始化所需的时间。时间约为45秒,现在约为5秒。对生产而言不是一个问题,但对于开发者来说绝对是一件麻烦事。请记住,我们有大约200个域对象。
  • 我们利用延迟加载(我并不是指集合,而是类)升级,这是默认设置。这是从1.2变为2.0。但是我们确实遇到了与会话断开连接的未完全加载的对象的问题。那些不容易找到,但很容易解决。
  • 我们利用了批处理,我认为这是新的。这在批量更新操作方面有了一些重大改进,而NH并不是真正的用途。
  • 通过上述两项改进,我们发现特定夜间作业的时间缩短了30%。
  • 我们对旧框架的最大抱怨之一是,很难找到1.2的支持和当前信息。
  • 对分页和计数等内容提供了改进的Criteria Query支持。条件查询很好,因为它们利用了一级缓存。
  • 强类型的收藏品非常适合使用。我们偶尔会在域对象上使用LINQ而不是复杂的SQL,并且必须使用强类型集合。
  • 我们也使用Ayende的分析器,目前是为2.0 +
  • 而构建的
  • 还有其他人,但总的来说,我们的迁移经历并不像我们想象的那么可怕。而且我们有一些遗留的东西会让NH大家不寒而栗。您需要更改配置设置,升级一些已弃用的接口(我认为我们的解决方案中的接口少于30个),但最大的痛苦是让您的域对象的所有属性/方法都是虚拟的。我实际上编写了一个快速程序来梳理我们的域对象并执行此操作,因为我们有很多。