东亚银行、岚图汽车带你解锁 AIGC 时代的数字化人才培养各赛道新模式! 了解详情
写点什么

NHibernate 2.0 带来了很多新特性

  • 2008-04-15
  • 本文字数:1374 字

    阅读完需:约 5 分钟

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-04-15 02:551637
用户头像

发布了 254 篇内容, 共 53.4 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

《Linux命令行与shell脚本编程大全》有奖书评活动!

图灵教育

Linux shell脚本编程

HarmonyOS Connect认证测试

HarmonyOS开发者

HarmonyOS

Zebec生态持续深度布局,ZBC通证月内翻倍或只是开始

西柚子

手把手教大家在 gRPC 中使用 JWT 完成身份校验

江南一点雨

Java gRPC

GitHub标星30K+的Java面试八股文长啥样?

小小怪下士

Java 程序员 面试

软件测试/测试开发 | 做为测试,那些不得不掌握的测试技术体系

测试人

软件测试 自动化测试 测试开发

【网易云信】海量并发低延时 RTC-CDN 系统架构设计(下)

网易智企

IM RTC 实时音视频

缤纷三月,安势信息邀您共话企业开源风险治理

安势信息

开源 安全合规 清源CleanSource SCA 安势信息 开源风险治理

架构训练营模块六作业

gigifrog

关于云原生,我问了ChatGPT几个问题......

拓维信息

DevOps 云原生 ChatGPT

海量并发低延时 RTC-CDN 系统架构设计(下)

网易云信

实时音视频

BlueShore Financial 通过 F5 筑起财务安全防线

F5 Inc

自动化 金融 WAAP

软件测试/测试开发 | 黑盒测试方法论—等价类

测试人

软件测试 自动化测试 测试开发 测试用例 测试方法

【立哥】【每日一个小知识】“奔”字为什么这样写?

Lee Chen

Bytebase:让数据库管理和协作变得无缝

天黑黑

MySQL 云原生 dba 数据库管理工具

抽丝剥茧!为您揭秘ChatGPT背后的数据库

华为云开发者联盟

数据库 华为云 ChatGPT 企业号 2 月 PK 榜 华为云开发者联盟

2023年1月用户体验GX评测:商业银行抢抓新春营销旺季,多措并举持续提升用户体验

易观分析

金融 银行 经济

软件测试 | 接口自动化测试代理配置

测吧(北京)科技有限公司

测试

《Linux命令行与shell脚本编程大全》有奖书评活动!

图灵社区

Linux shell脚本编程 shell脚本

Deltatech Gaming Ltd. 携手 F5 缔造更安全的在线游戏体验

F5 Inc

安全 游戏 waf

软件测试/测试开发 | 测试人员必须掌握的测试用例

测试人

软件测试 自动化测试 测试开发 测试用例

软件测试/测试开发 | 这些常用测试平台,你们公司在用的是哪些呢?

测试人

软件测试 自动化测试 测试开发

怎么写一份好的接口文档?

Liam

Java API 免费API接口 API接口 API接口文档

大数据应用场景下,标签策略如何实现价值最大化?

袋鼠云数栈

标签体系

科技“新贵”ChatGPT缘何“昙花一现”,仅低代码风靡至今

这我可不懂

低代码 ChatGPT

软件测试 | 接口测试文件上传测试

测吧(北京)科技有限公司

测试

详解神经网络基础部件BN层

华为云开发者联盟

人工智能 华为云 企业号 2 月 PK 榜 华为云开发者联盟

ChatGPT 可收费的那种产品该如何实现?一点尝试 | 社区征文

非喵鱼

Java openai ChatGPT

CodeArts Snap:辅助你编程的神器

华为云开发者联盟

云计算 华为云 企业号 2 月 PK 榜 华为云开发者联盟

软件测试/测试开发 | 黑盒测试方法论—边界值

测试人

软件测试 自动化测试 测试开发 测试用例 测试方法

数据服务门槛再提升,这个“TOP1玩家”凭何再度领军?

澳鹏Appen

人工智能 自动驾驶 智能驾驶 数据标注

NHibernate 2.0带来了很多新特性_.NET_Hartmut Wilms_InfoQ精选文章