InfoQ

新闻

NHibernate 2.0带来了很多新特性

作者 Hartmut Wilms 译者 朱永光 发布于 2008年4月15日 上午2时55分

社区
.NET
主题
数据访问
标签
LINQ,
nHibernate,
ORM
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
希望升级方便 发表人 谢 铁成 发表于 2008年6月18日 下午9时14分
Re: 希望升级方便 发表人 Rbin Zhang 发表于 2008年8月17日 下午7时38分
  1. 返回顶部

    希望升级方便

    2008年6月18日 下午9时14分 发表人 谢 铁成

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

  2. 返回顶部

    Re: 希望升级方便

    2008年8月17日 下午7时38分 发表人 Rbin Zhang

    希望得到nhibernate移植经验

深度内容

和Google互补的搜索引擎Wolfram|Alpha

Wolfram|Alpha与Google究竟是什么关系,Wolfram|Alpha自己是如何定位的?Wolfram|Alaph在多大程度上是语义网搜索呢?InfoQ中文站就等等这些问题采访了Wolfram研究公司中国区商务经理王翔。

SOA契约成熟度模型

本文说明了所推荐的契约版本管理设计策略是如何与SOA成熟度模型发生联系的。文章目的是为实现版本管理和可组合性提供一个路线图。

数据服务简介

Vijay Narayanan在这篇文章中对数据服务的几个方面进行了介绍,它们都是SOA实践者和数据架构师感兴趣的内容。本文对数据服务的几个方面进行了介绍,包括需求定义,基本原理和好处、范围、开发以及消费模式。

分块云计算

在本文中,Jimmy Nilsson描述了一种他在过去数年间观察到的一种正在缓慢成长的架构风格,他把这种风格称为“分块云计算”。

豆瓣网技术架构变迁

罗马不是一天建成的,豆瓣的技术架构也是随着用户规模的增长一直在持续变化中。在本次演讲中,豆瓣的首席架构师洪强宁将与大家一起分享从上线时的单台服务器架构开始一直到现在的豆瓣架构变迁历程。

融合思想:深入探索S#arp架构

Billy McCafferty展示了S#arp架构,它在ASP.NET MVC框架的基础上,荟萃了当今的最佳实践,应用在ASP.NET Web应用程序的架构设计中。

王雷谈开源以及新兴市场计划

中国作为新兴市场中的新兴市场,是Sun在美国之外实施SSE(SUN Startup Essentials)项目重点关注的地区。在QCon Beijing 2009期间,InfoQ中文站有幸对此项目的负责人王雷先生进行了采访,探讨了关于开源、新兴市场、SSE等话题。

使用HTML5构建下一代的Web Form

HTML5 是由 WHATWG发起的,最开始的名称叫做Web Application 1.0,而后这个标准吸纳了Web Forms 2.0的标准,并一同被W3C组织所采用,合并成为下一代的HTML5标准。