NHibernate 3.0.0.Alpha1 發布及新特性介紹
發布
剛剛NHibernate的Leader——Fabio Maulo發布了NHibernate 3.0.0.Alpha1版本,這是NHibernate 3.0.0的第一個公開測試版本。
下載地址
你可以到這里下載NHibernate 3.0.0.Alpha1,基于.Net3.5平臺,具體文件如下。
- NHibernate源碼:NHibernate-3.0.0.Alpha1-src.zip
- NHibernate二進制文件:NHibernate-3.0.0.Alpha1-bin.zip
特性介紹
NHibernate 3.0.0版本可以說是跨時代的一個版本,NHibernate貢獻者們經過了一年的完善和測試,增加了非常多的新特性和修復很多BUG。下面我自己歸類總結一下這些新特性吧。
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,幫助我們“自動”實現Mapping,當然了,ConfOrm不是NHibernate的一部分,我們需要另外單獨下載。
Query部分
在NHibernate 3.0.0版本中,新增了New Embebed Linq Provider和New strongly typed query API (QueryOver)兩種查詢方式,那么NHibernate 3.0.0現在支持了7種查詢方式。
QueryOver是Lambda表達式方式的條件(Criteria)查詢,可讀性強且支持property-renaming特性。
Linq是由Steve Strong貢獻者開發的,完全基于AST的Linq Provider實現。在之前的NHibernate2.1.2版本中沒有提供Linq功能,Ayende Rahien貢獻者另外設計第三方NHiberante.Linq.dll(目前已經停止了維護),它是基于Criteria API的Linq Provider,主要功能是將簡單的Linq表達式轉化為Criteria API,所以存在很多天生的不足,現在我們可以完全拋棄這個第三方dll了,完全使用NHibernate3.0.0自帶全新的Linq查詢支持。
其他
除了上面可以歸類的新特性,還提供了很多新特性,我先來列舉一下:
屬性延遲加載特性:這是我們一直以來夢寐以求的功能,NHibernate 3.0.0實現了,這里注意一下,它僅支持Castle的bytecode-providers,不支持Spring.Net和LinFu。
No Proxy關聯特性:這個功能和上面的差不多。
內置hbm2ddl工具。
還有其他特性不一一列舉,更多信息請參考發行文件。以后博文介紹。
博文分享
其實,我之前介紹了有關NHibernate 3.0.0版本的新特性,其中NH剖析系列就是基于NHibernate 3.0.0版本的,下面列舉一下分享下,以后會慢慢博文Query部分和其他部分特性介紹。
NH剖析:Configuration篇——SessionFactory的Properties之fluent-configuration配置
NH剖析:Configuration篇——SessionFactory的Properties之lambda-configuration配置
NH剖析:Configuration篇——SessionFactory的Cache之lambda-configuration配置
NH剖析:Mapping篇之集合映射基礎(3):List映射
希望本文對你有所幫助。