[XDesigner.ORM开源框架]简介

前言
    本教程介绍了作者自行设计和开发的XDesigner.ORM应用程序框架,预计的读者是C#的中级或者高级开发人员。
    C#初级和中级开发人员可以从中学习到如何在C#应用程序开发中使用XDesigner.ORM框架来方便快捷的实现关系型数据库和应用程序数据对象之间的来回映射处理。
    C#高级开发人员可以从中学习如何在C#中使用反射、动态编译、文档对象模型等较为高级的编程技巧。
 
ORM概述
    ORM是英文Object/Relation Mapping的简写,翻译成中文就是对象-关系数据库映射。是一种为了解决面向对象编程思想和关系数据库技术存在的不匹配的问题的技术思想。
    在数据库界,主流的数据库都是关系型数据库,其采用的关系型数据结构模型,无论从数学理论上还是实践中都相当的成熟,因此得到非常广泛的应用。在关系型数据结构理论中,所有的数据都组织成一个个相互独立的二维表格,一个数据表有若干行若干列。因此关系型数据库适合存储大量的结构简单的数据,不适合存储复杂的数据结构。
    在业界,面向对象的编程思想及其派生思想占据主流。面向对象的编程思想具有封装,继承,重载等手段来方便的实现比较复杂的数据结构,这适应了现代信息系统包含大量复杂数据结构的特点,其应用广泛深入。
关系型数据模型和面向对象的编程思想之间存在比较大的差别,数据在两者之间的交换是不大通畅的,就像南京,江北和主城区之间是长江来阻断交通。因此开发人员迫切需要破解这种数据交通的阻断。
    以前程序员需要手工编程,从数据库中读取一个个字段值并赋值到编程对象的一个个字段或属性上,这就像在长江上架一个独木桥,开发效率低下,维护困难。后来出现一种叫ORM的框架性的软件,它能根据某些配置信息将数据库中的字段和编程对象的字段或属性之间建立映射关系,从而能方便的从数据库读取字段值并赋值到对象属性中。这是一种半自动的机制,能比较大的提高开发效率,简化维护,这就像在长江上架设了一座高速公路大桥。
    从本质上说,关系型数据库和面向对象的编程思想之间的隔阂非常大,就像长江是天涧,即使建五六座大桥也不够用。彻底的解决方法就是抛弃关系型数据库而使用面向对象的数据库,不过这个过程就像南京江北整体搬迁到江南一样,工程浩大,时间漫长。在等待面向对象数据库的统治前,各位仍然得忍受关系型数据库和面向对象编程思想之间的数据交通不畅的痛苦,并使用ORM框架来很有限的降低这种痛苦。从这个角度上说,开发人员痛恨关系型数据库,就像搞运载火箭的人痛恨地球引力一样。
    在目前的软件开发中,Hibernate是用的比较多的ORM技术,它是一个JAVA的开放源代码的对象关系映射框架,它对JDBC进行了轻量级的对象封装,是的JAVA程序员可以使用对象编程思想来操作数据库。而有人将Hibernate改造成基于.NET框架的,形成了NHibernate,能用于.NET开发。
 
XDesigner.ORM概述
    XDesigner.ORM(简称XORM)是一个基于微软.NET平台的开源ORM框架程序。主要特点有
1.       轻量级。XORM是轻量级的框架,所有功能组件只包含在两个.NET程序集中,引用和部署非常方便,没有使用任何第三方组件。
2.       使用简单。没有复杂的XML映射配置文件。只需要在实体对象的源代码中附加相关的特性,附加这些特性并不影响程序的运行;实体对象类型的代码编写比较自由,限制条件少。
3.       支持对象关系映射。XORM能处理实体对象类型之间的主从关系,能自动加载主对象的子对象列表。
4.       支持动态加载。XORM能动态加载实体对象的数据量很大的字段值以及子对象列表。只有应用程序调用这些数据时才动态的加载,而且这个过程对应用程序来说是透明的。
5.       高性能。XORM框架使用动态编译技术来提高性能,使得它能以比较快的速度来处理ORM映射关系。
 
XORM框架的架构如下图所示
 

XORM的内部架构以后详细说明。
 
    XORM框架还在快速发展中,未来将要实现的功能有
1.       XML映射配置文件。未来将同时支持XML映射配置文件和实体类型附加特性两种方式来描述ORM映射关系,使得XORM框架应用更加的灵活。

posted on 2011-10-10 10:03  袁永福 电子病历,医疗信息化  阅读(2906)  评论(2编辑  收藏  举报

导航