代码改变世界

NHibernate 3.0.0.GA正式发布了

2010-12-05 12:47 by 李永京, ... 阅读, ... 评论, 收藏, 编辑

发布

2010年12月4号Fabio Maulo发布了NHibernate 3.0.0.GA正式版本。

下载地址

你可以到这里下载NHibernate 3.0.0.GA,基于.Net3.5平台,具体文件如下。

  • NHibernate二进制文件:NHibernate-3.0.0.GA-bin.zip
  • NHibernate参考文档:NHibernate-3.0.0.GA-reference.zip
  • NHibernate源码:NHibernate-3.0.0.GA-src.zip

特性介绍

NHibernate 3.0.0版本历经Alpha1、Alpha2、Alpha3、Beta1、Beta2、RC版本,修复了200多个BUG,增加了很多新特性。下面我自己归类总结一下这些新特性吧。

程序集部分

新的日志系统模块Logging Abstraction,移除对log4net.dll程序集依赖,现在可以用CommonLogging或者NLog。

Castle的bytecode-providers:使用2010年11月15号发布的2.5.2正式版本,即Castle.Core.dll程序集。

NHibernate 3.0.0版本现在支持.NET 3.5 Client Profile平台。

Configuration部分

新增两种方式流配置(fluent-configuration)和lambda表达式配置(lambda-configuration)配置SessionFactory。

新增对WCF的支持,提供WcfOperationSessionContext,我们可以直接配置"current_session_context_class"为"wcf_operation",直接在WCF中应用NHibernate。

在Configuration类中新增了AddDeserializedMapping(HbmMapping mappingDocument, string documentFileName)方法,可以直接解析HbmMapping,我们可以选择不使用xml文件Mapping。

Mapping部分

Fabio Maulo完全重构了NHibernate.Cfg.MappingSchema部分,提高了性能,另外Fabio Maulo设计了一个配置ORM工具——ConfOrm,解析Domain结构,按照模式适配器转换成HbmMapping类。当然了,ConfOrm不是NHibernate的一部分,我们需要另外单独下载。这个工具介绍,参考下面分享。

Query部分

在NHibernate 3.0.0版本中,新增了Linq Provider和strongly typed query API (QueryOver)两种查询方式。

QueryOver是Lambda表达式方式的条件(Criteria)查询,可读性强且支持property-renaming特性。

Linq是由Steve Strong贡献者开发的,完全基于AST的Linq Provider实现。

其他

除了上面可以归类的新特性,还提供了很多新特性:

属性延迟加载和No Proxy关联特性:它仅支持Castle的bytecode-providers,不支持Spring.Net和LinFu。

内置hbm2ddl工具。

映射支持XDocument、System.Uri、XmlDoc、Local & Utc DateTime类型。

新增SQL Anywhere方言。

还有其他特性不一一列举。

信息分享

博文和站点

NHibernate官方站点

NHibernate在线参考文档:已经更新至NHibernate 3.0.0版本,具体修改了一些错误和增加了QueryOver章节。

博客园NHibernate专题

NHibernate3剖析系列文章

ConfORM实战系列文章

NHibernate新书:NHibernate 3.0 CookBook

工具

HQL Language Service for Visual Studio:为我们编写HQL查询提供了智能提示和语法验证检查功能。

NHibernate Profile:可视化NHibernate性能检测优化工具。

Visual NHibernate:可视化设计和映射工具。

Mindscape NHibernate Designer:VS设计工具,类似于EF设计器。

未来

据我了解的情况来看,将来的版本发布预计一两个月后会发布3.0.1版本,然后就升级至.Net4平台开发NHibernate 4版本,主要就是逐步改写内部代码去掉Iesi.Collections.dll,使用.Net4提供的ISet集合和添加一些新功能,比如Duck Typing等。

还有NHibernate源码将迁移到CodePlex网站,使用Hg版本控制。

希望本文对你有所帮助。