其他
还有其他一些新特性:
重构Logging Abstraction日志系统模块:移除对log4net.dll程序集依赖,现在可以用CommonLogging或者NLog日志系统。可以参考Using NLog via Common.Logging with NHibernate。
属性延迟加载和No Proxy关联特性:具体使用方法可以参考Ayende的NHibernate new feature: Lazy Properties和NHibernate new feature: No proxy associations两篇博文。它仅支持Castle的bytecode-providers,不支持Spring.Net和LinFu代理。
映射支持XDocument、System.Uri、XmlDoc、Local & Utc DateTime类型。
bytecode-providers程序集更新:Castle使用2010年11月15号发布的2.5.2正式版本,即Castle.Core.dll程序集。LiuFu使用2010年4月5号发布的1.04版本,即LinFu.DynamicProxy.dll程序集。
改变
如果从NHibernate2.1.2版本升级到NHibernate3.0.0版本,需要注意下面改变:
1. NHibernate3.0.0版本不支持.Net3.5以下版本,即.Net2.0版本不可以升级到NHibernate3.0.0版本。
2. [NH-2392]ICompositeUserType.NullSafeSet方法签名改变。
3. [NH-2199]maps/dictionaries中null值不再不加提示地忽略/删除。
4. [NH-1894]SybaseAnywhereDialect删除,代之以SybaseASA9Dialect。删除了Sybase Adaptive Server Enterprise (ASE)方言。
5. [NH-2251]Dialect中的GetLimitString签名变化。
6. [NH-2284]删除了过时的成员。
7. [NH-2358]DateTimeOffset类型现在不再是DateTime的替代。
实用工具
最近一年,网络上出现了一些优秀的NHibernate工具:
1. HQL Language Service for Visual Studio:为我们编写HQL查询提供了智能提示和语法验证检查功能。
2. NHibernate Profile:可视化NHibernate性能检测优化工具。
3. Visual NHibernate:可视化设计和映射工具。
4. Mindscape NHibernate Designer:VS设计工具,类似于EF设计器。
其中HQL Language Service for Visual Studio是一款开源工具,其他都是商业版本。
未来发展
据我了解的情况来看,将来的版本发布预计一两个月后会发布3.1版本,然后就升级至.Net4平台开发NHibernate 4版本,主要就是逐步改写内部代码去掉Iesi.Collections.dll,使用.Net4提供的ISet集合和添加一些新功能,比如Duck Typing(鸭子类型)等。另外NHibernate源码将迁移到CodePlex网站,使用Hg版本控制。