InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

NHibernate 2.0带来了很多新特性

作者 Hartmut Wilms 译者 朱永光 发布于 2008年4月15日

领域
架构 & 设计,
运维 & 基础架构,
语言 & 开发
主题
数据访问 ,
.NET
标签
ORM ,
nHibernate ,
LINQ
NHibernate 2.0 Alpha于本周发布了。当前的2.0版本是针对Hibernate 3.2.6的特性集跨出的第一步,很多类都已经完全重写而且添加了很多特性。

InfoQ有幸采访了项目带头人Karl Chu,以及Ayende和Fabio Maulo等人,谈论到了这个2.0版本的一些细节。当问到在2.0中最重要的改变是什么时,Karl回答道:

从1.2到2.0有很多改变。如果只挑选一两个的话,我想新的继承映射策略以及新的事件底层机制是最重要的。它们为NHibernate带来了巨大的灵活性。

Ayende在他的博客上发布了一个关于所有改变和新特性的列表。他赞同Karl的观点,认为新的事件(Events)、动作(Actions)和监听器(Listeners)特性以及“对于Criteria API的主要增强”,特别Multi Criteria的加入是很重要的,它们允许“在一次DB访问往返中,能对DB执行多个查询,并实现了批量查询这样有意思的使用场景”。

事件(Events)、动作(Actions)和监听器(Listeners)特性为“介入NHibernate内部完成操作”提供了途径,Ayende说道。“这在很多场景中是很有用的,尤其当你想更好的控制NHibernate的运作的时候”。据Fabio Maulo所说,“重写NH默认的事件所受到的限制只是你自己的想象力”。NHibernate展现了很多使用事件特性的方式,例如NHibernate.Validator使用了事件/监听器,未来的NHibernate.Search和NHibernate.Shards用到了事件,以及NHibernate AddIns提供了一些示例来说明如何使用事件把EnterpriseLibrary Validation-Application-Block和NHibernate进行合并。

对于“Alpha”状态,Ayende解释到:

我们虽然称之为alpha,但我们很多人已经把其用到了生成环境里了,所以我们其实已经确信它已经比较稳定了。它依旧处于alpha的原因是,在(上一个版本发布的)近9个月以来,我们对其做了大量的更改,所以我们想在正式发布它之前能得到更多真实世界使用的反馈。自从上一个版本发布以来,被改变的代码行数最新估计大约是100000行。

尽管很多特性被加入其中,但“很多改变都是针对核心的”,Ayende说道,“需要把Hibernate 3.2的特性移植过来,并对NHibernate进行大量的改变以符合Hibernate 3.2现存的代码基础”。Fabio提到“NHibernate 2.0.0只是针对Hibernate 3.2.6移植的第一步”且2.1.0版本将最终消除它们的差异。

对于LINQ的支持,Karl Chu说道:“我个人相信NHibernate.Linq的成功将在NHibernate未来的成功中扮演一个重要的角色”。Ayende正在精心实现Linq for NHibernate(NHibernate.Linq)子项目:

Linq for NHibernate正在开发当中,目前我们已经完成了最基本的功能,可以配合NHibernate 2.0 Alpha 1使用。
我们正在着手开发一些高级功能。一旦完成,我们将把Linq for NHibernate合并到NHibernate项目中(现在可能作为一个Contrib项目存在),并和NHibernate一起发布。
注意NHibernate依旧和.NET 2.0完全兼容,Linq for NHibernate只是一个插件而已。

NHibernate 2.x的线路图“是将实现Hibernate 3.2的所有特性;我们离这个目标不会太远”,Karl Chu这样宣称。

Juli Lerman写文章谈论了NHibernate 2.0 Alpha,并指出它相对于实体框架(Entity Framework)的关系和位置是“EF有很长的路还要走,所以在此期间NHibernate将会越来越强大”。

查看英文原文:NHibernate 2.0 Offers Many New Features

译者 朱永光 是IT自由人和环境保护者,微软最有价值专家(MVP)和MCSD。

希望升级方便 发表人 铁成 谢 发表于
Re: 希望升级方便 发表人 Zhang Robin 发表于
  1. 返回顶部

    希望升级方便

    发表人 铁成 谢

    我们已升级到了1.2,但实体生成工具并不是很好用,希望升级后能将工具完善一下.
    有linq的支持是一件心动的事.

  2. 返回顶部

    Re: 希望升级方便

    发表人 Zhang Robin

    希望得到nhibernate移植经验

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffrey Richter:Windows 8是微软的重中之重

Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。