NickLee.ODRM模式说明和演示源代码下载

NickLee.ODRM构架模式
2007.1.10:新修改ODRM,去掉IDomain接口,利用反射和ComponentModel保持对象层的完整性,并修改LLGen.exe代码生成器,去掉代码生成器中的IDomain部分。
2007.1.20
    ODRM修改函数:public static bool ObjectDataEqual(object Fristobj, object Equalobj, ref string errMethod);
                                   public static Hashtable ObjectConvertHashtable(object objModel);

    UIFactory增加函数 public static Hashtable UIFactory_Clear(Control page);
                                      public static Hashtable UIFactory_NotReadOnly(Control page);

下载地址:
https://files.cnblogs.com/mail-ricklee/ODRM.part01.rar
https://files.cnblogs.com/mail-ricklee/ODRM.part02.rar
https://files.cnblogs.com/mail-ricklee/ODRM.part03.rar

ODRM演示操作说明
1.新增,查询无特殊说明
2.删除操作,请Ctrl+鼠标左键,可以多个选择,并可以选择不同页面的数据,同时删除
3.修改页面分为普通数据修改和密码修改
4.请在Sqlserver2005中新建数据库,名称为ODRM,并使用ODRM.bak文件还原,如果为2000数据库,请使用Visio文档的数据字典正向生成数据库

ODRM构架模式优点:
Object/DataSet Relational Mapping(对象/数据集关系映射)模式是在开源ORM映射的基础上结合NickLee.UIFactory和NickLee.Web.UI综合而成的一种灵活,快捷,简单的.net开发模式。因为其结合.net 的数据对象DataSet和ORM的优点,所以命名为Object/DataSet Relational Mapping
整合了以下优点
1.UI的灵活性
可以使用.net或者任意的三方控件,提高客户体验
2.对象化的业务处理
虽然UI层数据填充采用DataSet的方式,但业务处理的时候,可以通过NickLee.ODRM转化为有数据的对象实体,进行处理
3.清晰,快速的访问数据,以及注入攻击的防范
通过IBatisNet原始的机制,并修改了QueryForDataSet,QueryForOracleDataSet,利用IBatisNet在xml中书写清晰sql语句的作用和事务机制,使sql能完整地层现在xml中,以便于开发人员处理和修改。并有效的防止注入攻击。
通过QueryForDataSet,QueryForOracleDataSet,实现了ORM中对象和xml关系的分离,整个业务可以不同步对象和xml中的<resultMaps>和<alias>(当然,原始的IBatisNet机制我们没有修改,开发人员可以选择使用IBatisNet原始的ORM机制也可以使用我们扩充的QueryForDataSet,QueryForOracleDataSet模式)
4.对象实体,DataSet,Hashtable的互相转换
通过ODRM可以实现灵活的三个对象之间互相转换,这样无论任何数据,都可以以其中一种模式存在并可转
化为其他模式
5.整合的NickLee.Framework资源
通过整合的NickLee.Web.UI,NickLee.Common,NickLee.UIFactory,NickLee.ODRM等NickLee.Framework资源,以及IBatisNet对应代码生成器,很大的提高.net(BS)模式的开发效率和提高了客户体验以及减少校验量(比如日期,百分比,数字,金额,电话,邮编等)。

ODRM构架模式详细说明
1.ODRMLibrary
对于UI层,有的需要以dll的形式配置的,都可以放在ODRMLibrary中处理
2.ODRMDomain(数据库表映射对象实体)
已经断开ORM联系的对象实体,负责定义数据库表对应的属性,并为ODRMRule,ODRMController,ODRMWeb提供对象实体支持
3.ODRMRule(数据层)
负责传入的数据同数据库进行交互
    3.1 RuleBase
 所有Rule类的基类,负责声明和定义通用函数和属性
    3.2 IBatisNet
 数据库交互ORM,并可以实现事务,存储过程、函数等交互,动态配置查询在XML中
 增加函数IBatisNet.DataMapper.Mapper.Instance().QueryForDataSet(),IBatisNet.DataMapper.Mapper.Instance().QueryForOracleDataSet(),可直接查询返回DataSet,而不需要通过ORM返回映射结果。
 增加函数IBatisNet.DataMapper.Mapper.ReloadXml(),由于IBatisNet的机制为在第一次载入的时候所有的xml读入缓存,该函数提供动态重新载入xml进入缓存的,在修改xml不需要重新启动IIS,只需要调用该函数即可。
4.ODRMController(业务层)
负责业务数据校验和处理,完成处理后转入ODRMRule(数据层)与数据库交互数据
    4.1 ControllerBase
 所有Controller类的基类,负责声明和定义通用函数和属性
5.ODRMWeb(UI层)
配置层现页面,以及填充数据
    5.1 IPage,IListPage,IEditPage
 UI层接口,在编码人员编码的时候提醒编码人员需要实现的接口
    5.2 PageBase
 所有页面的基础类,负责声明和定义通用函数和属性,并负责基础Session的处理
6.NickLee.UIFactory
 获取或者设置页面控件的值,或者设置页面控件状态。
7.NickLee.ODRM
 提供对象实体,DataSet,Hashtable的互相转换函数,实现互相转换
9.LLBLGen
 IBatisNet对应代码生成器,直接生成C#语言的Domain层,以及简单新增,修改,查询,删除语句的代码生成器
8.NickLee.Framework
 集成的UI中间件和类库资源库,150个以上资源包。独立演示请下载NickLee.Framework.X.X.X.X.rar

参考下载地址
1.IBatisNet:www.ibatis.org
3.NickLee.Framework下载:http://www.cnblogs.com/mail-ricklee

数据库连接修改文件database.config



ODRM函数

Object/DataSet Relational Mapping(对象/数据集关系映射)


UIFactory函数

 

UIFactory类



                                                                                      TheFallAngel Team:NickLee

 


 

posted @ 2006-12-25 00:04  Nick.Lee  阅读(6385)  评论(4编辑  收藏  举报