,Scott W Ambler就写出关于ORM Persistence Layer的详细设计论文1。
在文中,提出Class Type Architecture的结构设计思想,并基于该思想设计过一个持久层框架。
后来Artem Rudoy根据这个框架开发出一个利用ORM实现PL(Persistence Layer)的开源项目2。
该组件的出现,使Scott的持久层设计的可行性和先进性得到验证,从而使与ORM技术相关的研究迅速成为研究热点。
目前国外的ORM框架很多,关于ORM技术的研究也比较成熟。
最具代表性的是
毕业设计论文 第 2 页 基于Java的Hibernate框架,它不但完整全面的实现对象关系之间的映射和持久化操作,还实现对象查询语句(HQL)向SQL语句的解释转换,提供真正意义上的对象化查询操作,在很大程度上做到程序开发与数据库的无关性。
NHibernate是一个基于.NET的针对关系型数据库的对象持久化框架,它的设计思想及功能完全模仿Hibernate。
2.国内研究现状 相比国外,国内有关ORM的研究还处在起步阶段。
在.NET领域,ORM技术已经引起开发人员足够的重视,研究和开发ORM框架成为一个热门话题。
目前国内各大型软件公司的开发中都引入NHibernate框架,并开始对基于.NET的ORM技术进行研究。
开源市场上也有很多实现ORM技术的轻型组件或框架,但它们都有很大的局限性和片面性。
总的说来,国内关于ORM技术的研究还有待深入。
1.3 ORM相关产品简介 尽管ORM还处于研究和发展的阶段,但ORM技术的巨大优越性使它很快成为面向对象开发中的主流开发模式。
相对于
Java平台下的ORM技术的蓬勃发展,.Net平台下的ORM技术处于起步阶段。
.Net平台下比较有代表性的ORM框架是ObjectSpace、NHibernate和XPO,它们代表大多数基于.Net平台的ORM框架风格。
下面将对以上三种ORM框架进行简介: 1.3.1 ObjectSpaces ObjectSpaces3是微软2006年正式发布的ORM组件,它需要自己建立一个实体类,使用OSD、RSD、MSD三种xml文件来分别描述所有实体类的定义、关系数据库中所有表的信息。
ObjectSpaces使用Microsoft创建的一套融入XPath和SQL思想的
搜索语言——OPath语言进行
查询。
开发人员使用ObjectSpaces时,须先在数据库中建好表结构,再根据表结构建立相关映射文件和实体类。
1.3.2 NHibernate NHibernate4是基于Microsoft .NET Framework的ORM框架,它从基于Java平台开发的Hibernate项目移植而来。
与ObjectSpaces一样,NHibernate使用硬编码毕业设计论文 第 3 页 实体类来定义类结构,但只用一种Xml文件来描述数据库表结构和实体类结构的对应关系以及实体类结构之间的关系。
NHibernate可以支持非常复杂的对象之间的关系,包括OneToOne、ManyToMany、OneToMany等。
Nhibernate使用完全面向对象的HQL语言进行查询。
1.3.3 XPO XPO5是DevExpress公司的商业ORM产品,XPO即eXpress Persistent Objects for .NET。
它采用自定义属性的方式实现Class与Table的映射,不像ObjectSpace用
xml文档保存映射信息,XPO通过在类或者方法面前加特性完成映射,是种单纯的持久化类映射。
1.4 论文构成及主要内容 本论文主要由五大部分组成: 1.绪论:介绍本课题的相关背景,设计意义及国内外研究现状和各主流ORM框架; 2.相关模型的研究:详细介绍关系模型和对象模型的概念,组成及优缺点,着重介 绍两种模型间存在的阻抗不匹配问题,并论述
问题产生的原因; 3.ORM框架的组成及其实现方法:介绍ORM框架的四个组成部分及所涉及的原 理和技术,着重介绍ORM框架的核心部分——对象关系映射原则; 4.TCORM框架的:介绍TCORM框架各组成部份的。
其中 重点介绍TCORM框架的持久化API部分的; 5.TCORM框架在项目中的运用:介绍 “湖南大学离退管理信息
系统” 项目中引 入TCORM的开发过程。
1.5 本设计的主要成果 本设计的主要成果是:对基于.Net的ORM框架设计的组成部分及原理进行深入探讨,深刻理解ORM技术的原理及设计意义。
实现一个基于.NET的ORM框架——TCORM框架。
该框架通过在“离退休管理信息系统”中运用证明其可行性和实用性。
毕业设计论文 第 4 页 2.相关模型的研究 既然ORM框架是架设在关系模型和对象模型之间的一座桥梁,那