NFramework开源AOP框架ORM的实现原理与应用-.NET教程,.(objectrelationalmapping,简称orm)是一种为了解决面向对象与关系数据库存在的互不匹配现象的技术。简单的说,orm是通过使用描述语言来描述数据库与对象之间的映射关系,并将程序中的对象自动持久化到关系数据库中,本质上就是将数据从一种形式转换到另外一种形式。,许多人都在谈论它,并且也得到了广泛的应用,但在我的项目经历中,即使应用nhibernate这样的好工具也有痛苦的时候,大量的xml文件让我们眼花缭乱,简单易学的hql语言却又常常不能满足我们的要求。特别是随着系统的复杂性越来越高,再加上人员的流动,最终xml堆积如山,若干事件以后不再有人记得那个xml文件是用来做什么的了。nhibernate本身对sql的封装做的很好,但或许这也成为了我们的束缚,对于非常复杂的业务问题,我们的调试变得更困难,要在代码与数个xml文件之间不停的查阅以期快速定位问题的所在,这增加了我们的调试难度。,因此它将sql释放出来,让我们可以一目了然。但同样也存在xml数据量过多的情况。随着系统的不断升级,我们不得不考虑膨胀的xml文件对内存的占用问题。当然,可以快速的溶入到现有的项目中,在不改变既有方案的前提下为我们提供一种新的思路来解决实际的问题,这是一个不错的优点。但纵观nhibernate也好、也好,其应用代码中都有一些严重的重复问题,比如说opensession、closesession、getfactory类似这样的代码,这对只关注业务的开发人员来说也是一个不小的工作量。,充分考虑了目前流行了orm框架,如nhibernate、这两个流行的产品。当然nframework也不可能没有缺点,但它为开发人员考虑的更多。首先从部署的角度来讲,nframework没有采用xml文件作为orm的映射描述,而是采用了扩展元数据的方式,这在很大程度上减轻了维护xml文件的负担,在部署时也只是一个简单的dll文件。nframework中的实体(entity)本身没有包括任何crud相关的方法,因此可以说是一个“轻量级的实体”,你不必担心由于大量的对实体对象的new操作导致系统占用资源过多而性能有所下降。nframework中的实体只包括映射的元数据与对象属性,因此它是轻量级的,在我们的实际测试中,在用户大量的并发操作时,创建新实体对象占用的资源微乎其微。在做到轻量级的同时,nframework并没有以降低映射的灵活性和效率性为前提,通过自定义的元数据,不但可以映射出数据表、视图、字段、字段类型、字段长度的映射关系,还可以轻松映射出多表之间的关联信息。下面我们来比较一下nframework与以nhibernate为代表的orm框架之间的不同。比较项目nframeworknhibernate速度直接使用dll做为载体,因此速度较快(当然,这里使用了反射,速度主要取决于反射的速度)。视配置文件的大小,另外有文件的io操作,另外大量的xml文件,对内存也提出了比较大的要求。易用性简单,和操作正常的类一样。相对复杂,
NFramework开源AOP框架ORM的实现原理与应用 来自淘豆网www.taodocs.com转载请标明出处.