代码生成器开发设计

原创 2007年10月09日 08:53:00

代码生成的过程是一个将某种形式的组织结构的软件框架或体系,通过一种的映射规则,转换生成以某种高级语言为程序实现的过程。

开发目的:

       开发公司内部用的代码生成器,为公司内部在代码实现阶段,提供快速而有效的辅助。

已有功能:

生成单一表的Model以及相关的操作类

当前阶段要实现主要功能:

1.        实现对多表操作,建立较完善的多Model的层次结构及相关的映射。

2.        自定义制定方法,生成DAL层相关的一些方法的操作。

 

未来将要达到的功能:

项目管理:

针对某个库(一般是指一个库),建立一个项目, 在这个项目中:①包含了对所有要生成的Model的管理, 自定义的 和非自定义 来自系统表的.②对所有要生成的Dal层类和方法的管理,需要生成什么类,有什么方法,通过对DAL层的管理可以对类的修改编辑,可以对方法的制定如修改参数等和自制定等.

项目的导入导出功能,通过导入导出,将项目工程的全部信息,导出到文件中,建议采用Sql Server.导出xml流的方式导出,而导入可以将项目相关的数据导入到数据库中。

 

生成界面:

       生成界面不是指生成任意的界面,而是根据一定的编码准则,和一定的编码模板,去生成一定风格的界面。在这个过程中关键的技术点在于如何定义生成过程中的“关节”部分,也就是指,是直接通过控制生成的模块部分生成不同的代码,还是通过生成可配置的代码以及生成可修改的配置文件(如CSS文档)来控制生成的代码界面,还是说这两者都希望采用。

       另外的一个技术难点是,当确定“关节”部分所在的位置后,如何定义生成可用于扩展的通用的规则库,即为,根据什么样的规则,生成什么的界面代码。

 

支持多数据库:

       从实现的角度上说,要实现支持多数据库,首先是要在结构上分层,目前的代码框架,然后已经分过了层,数据层已经分离出来,但是整体实现工厂模式却并不是特别的清楚,鉴于目前掌握的技术来说,以实现为主,优化放到重构阶段比较的合适。

 

支持多种数据构架:

       目前系统实现的构架,是采用了PetShop三层模式的方式生成,这种模式适用与某些网站BS架构的实现,但是,在另外的一些B/S系统和其他的一些软件中,这种模式可能不太合适,这个时候需要一种新的合适的方式进行编码,如何才能兼容新的软件框架生成器,也是一个亟待考虑的事宜。

 

友好的操作界面:

       这里的友好的操作界面,首先是指软件的外观是十分的人性化的,另外很重要的一点是指,在软件的操作过程中,其中有一部分的操作,可能会比较的繁琐,如:因为技术等原因,无法开发自定义控件,而改用其它的一些常用控件组合使用。 在掌握一定的技术后,可以尝试改用自定义控件,以提高友好的程度。

 

实现WebServices

       改良后的软件框架,不完全采用传统的C/S开发方式。而是采用基于服务的模式。把主要的业务逻辑放到服务器上运行。

 

相关模块的解决方案

生成多Model的构架:

       从单一的单表对Model,转化为 Model嵌套。

生成基本方法:

生成对本Model的添、删、查、改的操作方法

生成自定义方法:

       生成自定义的方法是本系统的难点和重点,是核心所在。自定义的方法需要的元素有

说明  红色是本次重点重点实现的部分

保护级别:public protect private

返回值类型: void , string, char , int ,byte….. 系统自带类型

                     string[] char[] int[] 系统自带类型复合类型

                     ModelInfo 自定义类型

                     ModelInfoList<>

参数类型

                     单一参数

string, char , int ,byte….. 系统自带类型

                     string[] char[] int[] 系统自带类型复合类型

                     ModelInfo 自定义类型

                     无参数

`                    复合参数:

                       类型

                        其它

                    

过程实现:

                     即时生成SQL

                     五种方式:

    select 返回单一值

    select 返回多组值

    insert

    update

    delete

 

 

返回值-参数-过程组合方式:

返回值类型

 

参数类型

过程实现方法

系统自有类型 void

自定义Model

Insert

Update

Delete

自定义类型IList<ModelInfo>

系统自有类型 int

无参

Select 多行结果集

 

 

 

 

根据存储过程匹配法

       技术难点:方法的参数 和存储过程的参数 进行合理的匹配。

       需要实现两种解决

1

生成方法的参数,与存储过程的参数一一相对

易,但不好用

2

tablemodel做为参数,再给存储过程的参数一一赋值

 

 

生成SQL代码模块

       根据统一的数据接口定义生成相关的sql

 

生成界面代码模块

       采用DOM生成代码,建立和设计DOM树和相关的接口

 

 

需要完善的系统架构工作

数据库的设计部分:

       项目的管理模块

       自定义的函数部分

主要代码构架部分

       统一接口定义

       设计SQL存储过程生成模块      

 


 

开发阶段与目标:

第一阶段的目标:

       熟悉代码生成内部构架,掌握代码生成机制、以及统用构架的全局定义的规范。

要求:清楚理解各个模块的部分。

第二阶段的目标:

       建立新的软件外部框架,并开始细化代码生成的各个部分功能。

       要求:有初步的模型

第三阶段的目标:

并且能提出较为合理的扩展方案,

 

Java Web 模板代码生成器的设计与实现

起因 项目中需要根据数据库表写很多Meta、Dao、Service代码,其中很多代码都是重复而繁琐的。因此如果有一个模板代码的生成器,就可以一定程度提高开发效率。 目标 可配置生成J...
  • yeyingss
  • yeyingss
  • 2017-06-12 09:31:00
  • 4048

代码生成器 基于多种数据库多种开发语言的模板化代码代码生成器支持数据库

  • 2010年02月06日 03:19
  • 1.97MB
  • 下载

组织机构代码生成器

  • 2013年09月13日 12:09
  • 5KB
  • 下载

代码生成器,极大简化你的工作

使用代码生成器,一键生成jsp,controller,dao,service,mapper代码...极大简化开发工作量...
  • u010469003
  • u010469003
  • 2015-06-04 12:33:43
  • 1715

代码生成器开发设计

代码生成的过程是一个将某种形式的组织结构的软件框架或体系,通过一种的映射规则,转换生成以某种高级语言为程序实现的过程。开发目的:       开发公司内部用的代码生成器,为公司内部在代码实现阶段,提供...
  • yjmtv0817
  • yjmtv0817
  • 2007-10-09 08:53:00
  • 553

一款自定义模版的代码生成工具

codegen 一款自定义模版(freemarker)的代码生成工具 快速入门 clone代码 git clone git@github.com:YaoLin1/codegen.g...
  • zhujianlin1990
  • zhujianlin1990
  • 2018-02-09 15:57:55
  • 160

李天平的.NET代码生成工具--动软.Net代码生成器

动软.Net代码生成器工具名称:     动软.NET代码生成器介绍:      动软.Net代码生成器 是一款为C#数据库程序员设计的自动代码生成器,Codematic 生成的代码基于面向对象的思想...
  • dripxwx
  • dripxwx
  • 2008-07-02 21:53:00
  • 1481

万丈高楼平地起 - 读《PHP5+MySQL网页系统开发设计》

春节手头有几本书,其中一本就是《PHP5+MySQL网页系统开发设计》,博文视点出版的,我对博文的书一向印象不错,在我印象中,这本大概是博文出版的第一本PHP书籍,我希望博文后面还会有第二本、第三本的...
  • lujunxiang
  • lujunxiang
  • 2007-02-21 09:35:00
  • 2273

常用代码生成工具汇总(转)

1.1 CodeSmith 一款人气很旺国外的基于模板的dotnet代码生成器 官方网站:http://www.codesmithtools.com 官方论坛:http://foru...
  • xgc007
  • xgc007
  • 2016-11-01 17:09:23
  • 11377

Android代码生成器设计文档

Android代码生成器
  • wyyl1
  • wyyl1
  • 2016-03-25 21:49:48
  • 1197
收藏助手
不良信息举报
您举报文章:代码生成器开发设计
举报原因:
原因补充:

(最多只允许输入30个字)