komatu

       暗  香  堂
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

关于自动生成数据应用系统的初步设计

Posted on 2006-06-23 16:57  暗香堂  阅读(362)  评论(0)    收藏  举报

自动代码工具设计思路

系统名称:MaxCoder Studio

运行环境:基于WEB

支持的数据库类型:SQL ServerSQLExpress

支持的语言类型:C#VB

支持的系统框架:简单三层结构、工厂模式

命名规范:

输入:系统名称、数据字典表名集、命名空间

输出:

1)  创建系统:包括系统名称、数据库连接等定义,保存到数据库。目前EGT已经实现。

2)  数据字典表:每张表定义时候均有自动增长字段ID,字典表定义除了包括基本定义之外,还包括字段的显示名称、显示顺序、对应的参数代码、是否显示、是否允许查询等控制。其中参数表、系统表、界面表、用户表、角色表等也是动态预生成的,不可以修改其结构。目前EGT已经实现。

3)  数据表:根据字典表生成数据表,目前EGT已经实现。

4)  存储过程:根据字典表定义自动生成相关的存储过程,包括数据的增加/删除/修改/查询(支持组合查询/简单查询)/获取最大ID,如果数据库不支持存储过程则跳过。

5)  视图:支持视图创建,具体可以考虑生成一个查询分析器(支持表、存储过程、视图、函数等的创建)。

6)  生成业务逻辑层代码文件:结合数据库的元数据动态生成业务逻辑层基础代码,封装成类库。例如生成Update方法。如果数据库不支持存储过程则改为直接用SQL语句完成。

7)  生成界面层代码文件:生成用户界面,可以设置界面一些参数,具体可以参考EGT实现,动态生成master文件、WebPart控件、MultiView控件,界面布局采用GridView+FormView结构,数据源采用ObjectDataSource。界面上提供数据的编辑、查询功能、导出、报表、统计等功能。一些操作可以支持无刷新界面回调,可以考虑采用Atlas框架建立站点的系统框架。可以选择界面风格和框架结构,具体可以参考EGT设计。后期可以考虑支持skinwebsite.Map等。

8)  生成系统的主界面,目前EGT已经实现。

9)  编译代码:动态编译代码文件到命名空间的DLL,如果是选择预编译方式可以跳过该步骤。

10)              发布系统:发布指定文件夹到指定目录

11)              用户/角色设置,管理员角色可以基于系统动态管理界面允许的操作类型。

与目前EGT的比较:

1)  支持存储过程自动生成

2)  支持三层结构

3)  界面更加规范

4)  支持动态(预)编译

5)  支持多语言

6)  体现了框架体系的思想

7)  角色管理