(如:内嵌SQl)而冒难于维护和扩展的风险,还是采用复杂的实现方法(持久层)使得系统易于维护和移植;在文献〔7〕中,周娅、黄桂敏认为面向对象的分析设计与关系数据库的实现之间采用ERwin模型作桥梁,实现对象模型与关系模型的转换是一种较好的对象一关系集成型数据库设计方法,他们给出了对象模型到ERwin模型的转换方法:在文献〔8〕中,田珂等人介绍了3种基于java平台的主流持久层解决方案。
通过对J2EE 3种数据映射方案的分析和比较,探讨了各种解决
方案的技术特点,以及在项目开发过程中的使用特点,并深入分析了数据持久层的设计困难的技术原因。
在.NET领域,ORM技术已经引起了开发人员足够的重视,ORM技术及其相关技术成为了一个热门的话题。
开发人员开始把国外的ORM组件NHibernate应用到项目中〔9〕,并开始对.net下ORM技术进行了研究。
在文献〔10〕中Laser lu提出了一个详细的基于.NET平台的面向对象的数据持久化组件的设计方案。
3现有基于.Net平台的0RM组件的不足 虽然目前已经存在很多的基于.NET平台的ORM组件都可以比较好的解决对象和关系不匹配的问题,如NHibernate,XPO,DataObjects等组件。
但是现有的组件都是基于通用的目标设计的,这使得组件结构过于庞大,复杂而缺少灵活性,并且由于这种复杂性,导致短期内难以成熟到可以让开发人员放心使用的程度。
如NHibernate虽然功能很强大,支持各种关系模式,而且还有比较灵活的HQL查询语言,是目前国内外认可度最高的ORM组件,但是它仍然脱离不了繁琐的关系,仍然对数据库不能完全的支持,现在还没有成熟的版本,甚至连使用
文档也没有。
而且开发人员还要重新
学习HQL查询语言,如果不是经验丰富的专业人员将很难使用。
ORM组件实现的功能越强,相应带来的复杂度也就越大,也越难以成熟和使用。
因此必须根据实际应用的需要,对ORM组件实现的功能进行量体裁衣,实现一个轻量级的ORM组件,以比较小的代价(实现ORM组件的代价)获得最大程度的利益(解决存在于实际项目中的“阻抗不匹配”问题)。
并且由于应用的需求也是在不断变化着的,要求能对ORM组件的源代码进行修改以适应变化,所以ORM组件必须是开源的。
丙在.NET平台下,目前还没有这类对应菜类应用的特点进行的轻量级开源ORM组件。
§1.3 ORM组件相关产品简介 尽管ORM还存在这样或那样的问题,但是ORM技术的巨大优越性使它很快成为面向对象丌发中的主流开发模式。
在Java社区中,Java Data Object就是由Sun发起,众多厂家共同制定的java的ORM标准,而下一代的Enterprise Java Bean标准也将融合JDO技术,将ORM技术作为EJB 3.0技术规范的核心技术。
可以预见在不久的将来,ORM技术将被广泛的运用在软件项目开发中,成为软件开发的火箭助推器。
第3贞 国防科学技术人学研究生院学何论文 相对于Java平台下的ORM技术的蓬勃发展,.Net平台下的ORM技术还处在一个刚起步的阶段。
基于.NET平台实现的ORM组件也远没有基于Java平台实现的ORM组件丰富和成熟。
.NET平台下比较有代表性的ORM组件是0biectSpace、NHibemate和xPO这三种.它们代表了大多数基于.NET平台的组件的风格。
由于ORM组件的风格一股由四个方面决定,即Mapping方式,关系映射方式,查询方法和映射方向。
因此,下面将主要从这四个方面介绍以上三种ORM组件。
1.3.1 ObjectSpaces ObjectSpaces是微软计划在2006年正式发布的ORM组件。
现在普遍使用的是.NetFramework 1.2 A1pha测试版中带的ObjectSpaces,版本号1.2.30703.27。
ObjectSpaces需要自己建立一个实体类,使用OSD、RSD、MSD三种xml文件来分别描述所有实体类的定义、关系