【问题标题】:Is it worth migrating to NHibernate 2.x from NHibernate 1.2?值得从 NHibernate 1.2 迁移到 NHibernate 2.x 吗?
【发布时间】:2011-01-25 00:32:01
【问题描述】:
我们在性能不佳的系统中使用 nHibernate 1.2。如果我们迁移到最新版本的 nHibernate,性能会有一些提升吗?
总的来说,迁移到最新版本的 nHibernate 是个好主意吗?
编辑:我想使用以下功能来提高性能。
1.二级缓存。
2. 连接表。
3. MultiQuery 到批量查询。
【问题讨论】:
标签:
performance
nhibernate
batch-file
migration
second-level-cache
【解决方案1】:
取决于 - 不。我会考虑直接进入开发主干....以获得更多/更好的 LINQ 支持。不知道什么时候可以测试,但我会冒险。 “当前”的 LINQ 很难使用(没有“StartsWith”查询,所以即使是基本的搜索表单也大多不可用)。
如果你可以冒险,那是值得的。 LINQ 本身始终是迁移的一个理由——这是实现更好搜索的相当残酷的一步;)
【解决方案2】:
仅当您需要使用 NHibernate 2.0 提供的最新功能时。这是列出新功能的链接。
Road Map
我的经验告诉我为什么会有这样的表达:“如果它没有坏,就不要修理它!”站立。这里也一样。不过,NH 2.1.2.GA 相当有趣。您应该问的问题是“我是否需要这些新功能,或者它们是否对我的项目的未来扩展有用?”如果是,那就去吧,否则,保持它的工作方式。
【解决方案3】:
如果性能是您的问题,请考虑使用 NHibernate Profiler。
NHibernate Profiler 是一个实时可视化调试器,让开发团队能够获得宝贵的洞察力和视角来了解他们对 NHibernate 的使用。
【解决方案4】:
在完成从 1.2 到 2.0.1 再到 2.1.2 的转换后,我可以肯定地说我不会回去。
MultiCriteria 实现对我来说是一个改变游戏规则的方法(无论是性能还是编码风格)。二级缓存可能与 1.2 相同,对于 Join Table 我没有使用它们,所以我无法评论。
这些改进是全面的,并且某些部分已被重新编写。
没有任何东西被破坏,除了相同的命名空间更改和类名更改,功能是相同的。
总的来说,我推荐它。