代码改变世界

NHibernate之旅(1):开篇有益

2008-10-10 16:44 by 李永京, ... 阅读, ... 评论, 收藏, 编辑

NHibernate之旅(1):开篇有益

本节内容

作者注:2009-11-06已更新

NHibernate开篇有益

学习NHibernate有一段时间了,打算做个阶段性总结,就萌生了这个系列,这个系列参考NHibernate官方文档和Steve Bohlen的NHibernate之夏视频教程。作为开篇,首先了解多少人在使用NHibernate,先搞清楚NHibernate是什么?学习NHibernate的一些资源。也欢迎大家加入NHibernate中文社区

这个系列我使用NHibernate官方2009年10月31日最新发布的NHibernate-2.1.1.GA版本。开发环境是Microsoft Visual Studio 2008 SP1/Microsoft Visual Studio 2010、SQL Server 2008 Express和集成测试插件TestDriven.NET。如果你第一次使用NHibernate,先到这里下载NHibernate最新版本(包括源码、发布版本、参考文档、API文档,可选择下载)。如果用到NHibernate的扩展项目到这里下载获得NHibernate Contrib最新版本。NHibernate-2.1.1.GA是.NET2.0平台的最后一个版本,关于NHibernate-2.1.1.GA的更多信息请点击这里

NHibernate是什么

NHibernate 是一个面向.NET 环境的对象/关系数据库映射工具。对象关系映射(O/R Mapping,Object Relational Mapping)表示一种技术,用来把对象模型表示的对象映射到基于SQL 的关系模型数据结构中去。

NHibernate不仅仅管理.NET 类到数据库表的映射(包括.NET 数据类型到SQL 数据类型的映射),还提供数据查询和获取数据的方法,大幅度减少我们开发时人工使用SQL和ADO.NET处理数据的时间。NHibernate的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的95%。并请记住NHibernate作为数据库访问层,是与你的程序紧密集成的。

NHibernate的架构

你知道NHibernate到底什么样子?下面我摘取官方文档中的三幅不同的结构图稍做说明。

第一幅图:NHibernate体系结构非常抽象的概览

概览

这幅图展示了NHibernate在数据库和应用程序之间提供了一个持久层。

第一幅图好像非常简单?其实NHibernate是比较复杂的。我们了解两种极端情况,轻量级和重量级架构。再来第二幅图:轻量级体系,应用程序自己提供ADO.NET连接,并且自行管理事务。

轻量级体系

最后一张图:重量级体系:所有的底层ADO.NET API都被抽象了。

重量级体系

NHibernate资源

NHibernate资源现在已经比较多了,但是大部分都是英文了,这里我仅仅挑选几个站点。

NHibernate专题:http://kb.cnblogs.com/zt/NHibernate/ (中文)

NHibernate官方主页:http://www.nhforge.org/(英文)

NHibernate参考文档2.1.1GA:http://nhforge.org/doc/nh/en/(英文) 社区有中文文档下载。

NHibernate之夏系列录像教程:http://www.summerofnhibernate.com/(英文)

欢迎加入NHibernate中文社区

http://space.cnblogs.com/group/NHibernate

为什么叫做NHibernate中文社区呢?原因很简单,体现本地化。现在关于NHibernate很多的资料都是英文资料,中文资料少的可怜了也不是很完整,我们努力建立在这个小组建立起来属于大家的NHibernate中文社区,在这里一起讨论NHibernate、学习NHibernate。

如果你使用NHibernate,学习NHibernate,欢迎加入这个小组,一起讨论NHibernate、学习NHibernate,一起建立NHibernate中文社区