写点什么

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:551775
用户头像

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

关注

评论

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

Gestimer for Mac:轻量定时器,提醒大小事

Rose

Gestimer Mac中文版 Gestimer破解版 Gestimer下载 Mac任务提醒工具

TiDB v7.5.0 LTS 升级必读 | 新特性补充说明

TiDB 社区干货传送门

版本升级 新版本/特性解读 7.x 实践

TiDB知识点梳理 (PCTA 笔记分享)

TiDB 社区干货传送门

TiDB 底层架构 TiDB 源码解读

TiDB-v7.5.0 DDL 启停特性分析

TiDB 社区干货传送门

版本测评 新版本/特性发布 新版本/特性解读 7.x 实践

React基础知识入门

小白Coding日志

前端 React

3D材质编辑:制作被火烧的木头

3D建模设计

3D渲染 材质贴图 纹理贴图 模型渲染 材质编辑

2023年,用友BIP持续发展,引领企业数智化

用友BIP

恢复的方式多种多样,总有一款适合你

TiDB 社区干货传送门

备份 & 恢复

Python 案例实训教学,课程展示及结课存档优化|ModelWhale 版本更新

ModelWhale

人工智能 大数据 canvas 教学实训 模型服务

强大的系统活动监控器:iStat Menus 激活中文版最新

胖墩儿不胖y

系统监控工具 Mac电脑软件

火山引擎的AI语音技术

淼.

利用法线贴图渲染逼真的3D老虎模型

3D建模设计

3D渲染 材质贴图 纹理贴图 材质纹理 材质编辑

使用粗糙贴图制作粗纹皮革手提包3D模型

3D建模设计

3D渲染 纹理贴图 模型渲染 材质纹理 材质编辑

苹果电脑FTP客户端:Transmit for mac 中文版 支持M/intel

Rose

Mac 软件 Transmit 5 Transmit破解版 FTP客户端

从ClickHouse通往MySQL的几条道路 | 京东物流技术团队

京东科技开发者

MySQL 数据库 Clickhouse

DM同步为已有迁移任务增加新同步的表

TiDB 社区干货传送门

迁移 实践案例 管理与运维

【12 月 9 号线上 Meetup 预告】兼容 MySQL 的原生分布式数据库,聊聊 TiDB 为何是 MySQL 5.7 停服后的新选择

TiDB 社区干货传送门

社区活动

苹果电脑虚拟定位:AnyGo中文破解 for mac 修改手机定位就是如此简单

Rose

mac软件下载 AnyGo for Mac AnyGo破解版 虚拟定位工具 AnyGo中文版下载

现代皮质沙发材质编辑

3D建模设计

3D渲染 纹理处理 模型渲染 材质纹理 材质编辑

【EMNLP 2023】基于大语言模型的复杂任务认知推理算法CogTree

阿里云大数据AI技术

on duplicate key update引发的索引数据不一致问题

TiDB 社区干货传送门

故障排查/诊断

什么?通过 Prometheus 编写巡检脚本

TiDB 社区干货传送门

监控 实践案例 集群管理 管理与运维 故障排查/诊断

如何使用玻璃材质制作钻石3D模型

3D建模设计

3D渲染 纹理贴图 模型渲染 材质纹理 材质编辑

解密 ArcGraph 分布式一致性:Raft 协议与分布式事务实现丨技术专栏

Fabarta

分布式事务 分布式系统 raft协议 分布式图数据库

使用TiKV-CDC实现rawkv集群的两地三中心

TiDB 社区干货传送门

实践案例 集群管理 数据库架构选型 数据库架构设计 6.x 实践

HTAP 还可以这么玩?丨TiDB 在 IoT 智慧园区的应用

TiDB 社区干货传送门

实践案例

从 Oracle 到 TiDB,全链路数据迁移平台核心能力和杭州银行迁移实践

TiDB 社区干货传送门

实践案例

​网易游戏实时 HTAP 计费风控平台建设

TiDB 社区干货传送门

实践案例

TiDB 7.5 LTS 发版丨提升规模化场景下关键应用的稳定性和成本的灵活性

TiDB 社区干货传送门

新版本/特性解读

MCube动态化与原生工程结合最佳实践 | 京东云技术团队

京东科技开发者

前端 跨端 动态化 MCube

一文速览字节最新分布式操作系统KubeWharf

苏沐

运维 云原生 k8s 分布式操作系统 KubeWharf

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