1 / 17
文档名称:

代码生成器设计说明书.doc

格式:doc   页数:17页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

代码生成器设计说明书.doc

上传人:xxj16588 2015/10/3 文件大小:0 KB

下载得到文件列表

代码生成器设计说明书.doc

文档介绍

文档介绍:代码生成器设计说明书
作者:何鹏
版本号:
时间:2009-12-11
修改时间:
版权所有:
引言
编写目的
说明编写这份总体设计说明书的目的,指出预期的读者。
平台中代码生成器的开发、测试提供依据、指导。预期的读者主要包括相关开发人员,测试人员。
设计目标
,包括实体对象,IDAL,DAL,BLL层代码,并根据数据库自动生成解决方案,每层的项目文件及各个表的代码文件。平台体系架构图。
平台体系架构图
背景
项目程序员在一个项目开发中需要花很多时间编写与数据库相关的数据访问层相关的代码,而这些代码结构相同,内容相似,与数据库联系紧密,代码量大。
为了让项目程序员从这些繁重的重复的代码编写工作解脱出来,专心于业务逻辑的代码编写,我们需要设计一个根据数据库中的表自动产生数据访问层相关的代码文件。
由于Model,IDAL,DAL,BLL层代码结构固定,变化不大,使自动生成代码成为可能。所以我们在这个基础上设计了代码生成器。
定义
列出本文件用到的专门术语的定义和外文首字母组词的原词组。
参考资料
代码生成器(参考其程序结构功能)
Demo代码文件(参考其代码几层的结构及规范)
框架设计
应用架构
我们从数据库抽取,代码生成两个结构来说明。
数据结构抽取
读取Oracle,SQLServer,MySQL数据库结构
执行sql语句
读取表结构及字段属性
代码生成
用户定义字段,层的代码生成
批量生成代码文件
体系结构
DB
字段元数据
Sql语句执行
代码生成引擎
代码显示UI
用户自定义代码生成,及数据操作

总体架构
体系结构
代码生成器详细设计
概述
代码生成器主要实现数据字段的读取和代码文字的组装,然后就是利用控件TextEditorControl实现对SQL语句和C#代码的高亮显示;Bar控件做成类似于VS2005的界面风格。
功能
列出主要功能:
访问三种不同数据库
产生数据库的树形列表
查看数据库属性(表,视图,存储过程,字段)
通过表名自动产生SQL基本语句(select,insert,update,delete)
执行sql语句并返回结果
获得视图,存储过程的sql定义
用户自定义代码生成(可选择层,可选择生成的DAL函数)
用户批量生成代码文件(解决方案文件,项目文件,各个层的代码文件)
解决方案
总体组件包结构:
下面是代码生成器主要结构包图。
说明:
接口IDAL主要功能是获取不同数据库的各个名称,内容,以及获取表结构,字段结构,视图,存储过程定义,并提供接口执行SQL语句。
TextCodeUtility类,主要通过字段信息按照规范组装C#代码。
ADFactroyModelCodeEdit类,主要通过TextCodeUtility类生成各个层代码并写入TextCode控件或者生成cs文件。
DocEditFramework该包,主要生成SQL执行页面和数据库属性页面,用于动态创建。
DBUtility用于提供访问各个数据库通用接口。
类图
参与者和职责
策略
相关模式
为了实现对不同数据库访问,我们主要使用了工厂模式。
效果
关键应用场景代码片断
//获取字段明细
public GetTableColDetails(string DBName, string TableName)
{
StringBuilder sqlDetails = new StringBuilder();
("select ORDINAL_POSITION as 序号,COLUMN_NAME as 列名,DATA_TYPE as 字段类型,");
("ifnull(CHARACTER_MAXIMUM_LENGTH,0)+ifnull(NUMERIC_PRECISION,0) as
长度,");
("case IS_NULLABLE when 'YES' then true else false end as 是否为空,");
("case COLUMN_KEY when 'PRI' then true else false end as 是否主键");
((@"from where TABLE_SCHEMA='{0}' and T