【Framework名称】
Mindsware DataObjects & DynamicDataSheets Framework
到这里下载所有源码及示例:
http://www.cnb4c.com/Mindsware_DynamicDataObjects_v0.1.rar
【版本号】
v0.1
【平台】
Microsoft.NET 1.1
【功能说明】
1、顾名思义:这个框架主要完成两个功能:
(1)实现Object to Database Mapping,开发者再也不用编写复杂的insert, update
和delete了,而且对Oracle, Sql Server以及各种OLEDB数据源支持透明访问。
其中Oracle和Sql Server的访问通过native provider方式,不通过OLEDB,最大
限度的提高性能。
(2)实现关系型数据表的动态维护,包括新增、修改、删除、查询、显示翻页的功能。
一个关系型表增加/删除字段、修改表现方式,都可以很容易的实现(几行代码)。
J2EE平台下面这样的Framework数不胜数,可是.NET平台下的却屈指可数,希望这个
Framework的问世,能够为.NET的普及做出一点贡献,也为大家学习.NET的Programming,
Modeling提供一个范例。欢迎志愿者加入我的行列,一起丰富完善这个Framework。
2、flexibility和plug-in ability很强,可适用任何.net项目,只需要在项目中reference
Mindsware的assembly就可以使用,其中的DBObject, MultiDBObject, DBConnection
使用起来非常方便,提供了Insert,Update,Delete,RetreiveList,Count等非常
丰富的数据操纵方法。限于篇幅和时间,没有一一在示例中演示这些方法。
3、要为很多张数据库表实现新增、修改、删除、查询、显示列表、翻页、排序的
操作,在asp/jsp里边每个表就需要大概4~5个左右的页面文件(还不算facade、
business logic、data access、data-mapping value object所需的类),很是
麻烦,如果这样的基础表达到20张以上,这个基本资料维护的工作就需要至少
两三个人月来完成,而且更新、维护起来绝对是个噩梦。
本框架使用一个aspx的页面完成对一张数据库表的新增、修改、删除、查询、列表、
翻页、排序操作(未完成),所有操作均封装在公用控件中,这个页面只是一个外壳,
可根据实际需要排放各种控件,设定显示风格,以及取舍各种页面操作功能。对每张
表开发者所需要编写的代码仅为10~30行。示例中有三个页面,演示了如何完成对
两个数据库表的数据维护工作。
4、使用一个用户自定义的类完成对一张数据库表的schema定义,继承一个DBObject或者
MultiDBObject类(这个名字学习自一个开源项目expresso,功能也类似),只要
定义好schema,也就是手动设定一下每个column的名称、数据类型、是否主键、
是否可为空、是否参照其他表的主键、编辑时显示类型(显示为textbox, textarea,
dropdownlist, radiolist还是别的什么)等等信息。那么自动可以使用基类已经
定义好的RetreiveList, Count等显示列表、处理查询的方法,以及update, insert,
delete修改数据的方法。不用再写SQL语句,不用再绑定参数,一切都是自动完成。
5、有一个专门Render表格的类,用于根据DBObject/MultiDBObject的子类的schema生成
各种表单,例如新增数据表单、修改数据表单(会load被修改的数据)、查询表单等,
里面的格式可以通过一个style列表来自定义,会根据data column的设定来决定显示
什么控件,比如一个参照其他表主键的列,会显示一个dropdownlist,显示被
参照表的键值的描述,而实际取值是键值,这是最基本的操作。还能根据列是否
允许为空、是否为数字、是否为密码,来动态加入validator,在页面上进行提交
前的validation,比如密码要求输两遍,而且两编输入的要一致,列为数字的文
本框里只能为数字等等。查询表格中,如果列为数字或日期,会自动给出起始值
和终止值两个框,如果是日期则显示日期控件。
【文件说明】
1、Mindsware目录下面是核心project及所有源代码!!
2、Sample_Web_Project目录下面是一个示例Web project
3、Sql_Scripts_for_Sample目录下面是示例所需的数据库建表语句,
包括Oracle和MS SQL的,以及一个建好表的Access示例数据库。
4、需要下载Oracle Client以及Oracle Data Provider for .NET(ODP.NET),
安装在开发机以及Web服务器上(可能是同一台机器),才可以使用类似
System.Data.SqlClient的方式连接Oracle数据库,对应的assembly是
Oracle.DataAccess。
by wesley@smth
2003.12
欢迎在论坛上交流,或者发Email,请不要发smth站内信箱,太容易超容了!
Email: wesley@263.net
QQ: 18990702