NHibernate官方文档 之 NHibernate指南-前言

以外之中发现了NHibernate稀缺的资料中的指南,上个月就翻译好了,但是盼啊盼,已经半年了指南1B和1C仍未露面,先贴出来前言吧。
ps : NHibernate1.2.0 alpha已经发布了。
原文地址

序言
内容列表:
你可以在哪里得到这些指南以及它的代码
必须的
对象/关系映射(Object/Relational Mapping)


概览
我会告诉你什么是Object/Relational Mapping(ORM)还有怎么使用NHibernate
下面我们有三个大步骤:
第一章,NHibernateEg.Tutorial1A(指南1A) 在一个Console Application(控制台应用程序)中介绍NHibernate
第二章,NHibernateEg.Tutorial1B(指南1B),在一个Windows Application(窗口应用程序)中展示一个复杂的NHibernate应用
第三章,NHibernateEg.Tutorial1C(指南1C),在一个Web Application(站点应用程序)中展示一个更复杂的NHibernate应用

这些指南非常长,所以你需要花很长的时间来掌握它们。我建议你进行尽可能多的练习,编写和执行实例程序来测试每一个特点。


在哪里可以得到这些指南和代码
这些指南目前只有英文版可以使用。你可以在这里获得在线版本(http://nhibernate.sourceforge.net/NHibernateEg/)。法语版本也会尽快发布。

源代码在NHibernate CVS(in the "Documentation" branch,http://cvs.sourceforge.net/viewcvs.py/nhibernate/Documentation/NHibernateEg/)上可用,可以在http://nhibernate.sourceforge.net/NHibernateEg.zip 下载

必须的

我建议你已经拥有在.Net框架下开发基于属于数据库的程序开发所需的基本知识。包括使用.Net程序创建一个连接到一个SQL数据库,进行基本的增删改查(CRUD)操作和使用事务(transactions)。

程序需要在.NET框架下运行

修改和编译源代码时你需要.NET SDK(Software Development Kit, 软件开发工具包)和NAnt(http://nant.sourceforge.net/)或SharpDevelop(http://www.icsharpcode.net/opensource/sd/)for VS.NET


对象/关系映射(Object/Relational Mapping)
一个对象/关系映射就是在面向对象系统中的一个连接对象持久层(persistence layer connecting objects)来把数据保存在关系型数据库中.使用对象/关系映射(ORM)允许在关系系统中隐藏处理细节时进行面向对象设计(object-oriented design),分析和编程.

ORM在JAVA世界里特别受欢迎,尽管它在.NET世界里还比较不被熟知,目前已经有了大量的(商业的/开源的)类库.

不要把Object/Relational Mapping与Object/Role Modeling(对象/规则模型)的概念弄混.Object/Role Modeling(对象规则模型)是一种在进行信息分析时使用的指导思想.

有很多种Object/Relational Mapping产品
 Pure Relational.(纯粹关系).没有ORM(映射),程序只处理tables(表)和rows(行)使用DataSet和DataReader
 Light Object Mapping(轻型对象映射).SQL查询是尽可能孤立的和密封的,有一些行被手工转化为对象。
 Medium Object Mapping(中型对象映射).程序是用对象设计的。这类产品允许映射集合(Collections)和交叉联合(Associations)。它可以进行基于对象的查询。
 Full Object Mapping(全对象映射).提供比Medium object Mapping更多的解决方案。提供更全面的映射,比如继承。它提供完整的面向对象的查询API和高级特性比如并发(concurrency)和捕获策略(caching strategies)

开始的步骤是使用一个object/XML数据库,但是它需要改变非常多的基本原则。

一个Object/Relational Mapper在内部使用很多模式(patterns)和.NET特性(.NET features):工作单元(Unit Of Work),标识映射表(Identity Map),延迟加载(Lazy Loading),反射(Reflection),XML...

要获取更多的关于ORM的细节,请阅读

Foundations of Object Relational Mapping (by Mark L. Fussell) 
Introduction to O/R-Mapping (on Fredrik Normén's Blog) 
Object Relational Mapping (on c2.com Wiki) 
Patterns of Enterprise Application Architecture (on Martin Fowler web site)

NHibernate 支持Full Object Mapping(全对象映射)

下面是一段引用 From "NHibernate - Project of the Month, November 2005" on SourceForge.net:

NHibernate是Java Hibernate关系持久工具在.NET平台下的一个版本。Hibernate大体上领导object-relationnal mapping(ORM)和对象持久解决方案。NHibernate关系型数据库对象持久库(version 1.0)基本上100%兼容Hibernate2.1中的特性。你的对象在持久化的时候不需要继承一个特定的基类或者继承一个接口,这使得Hibernate和NHibernate都是唯一的(What makes NHibernate and Hibernate both unique...)。(N)Hibernate运行基于简单的旧的Java/CLR对象(works with plain old Java/CLR objects).Hibernate 也非常灵活,比如你可以定义怎么样持久自定义属性和联合(associations),用简明而强大的查询语言查询数据库等等。
谁是这个软件的预计用户(intended audience)?那些正在使用复杂领域模型(with a complex domain model)在.NET平台下编写企业应用程序的开发人员(Developers)

NHibernate已经完成,1.0版在2005年十月发布。它由JBoss Inc支持。

posted on 2006-06-23 10:57  昊子  阅读(2043)  评论(0编辑  收藏  举报

导航