代码生成工具随笔(1) ---关于代码生成器

本人比较早就开始编写代码生成器, 第一款的生成工具SharpCode(有兴趣的可以在Google上搜索一下http://www.google.com/search?hl=zh-CN&newwindow=1&q=SharpCode&lr=), 就开始编写支持多数据库的C#代码生成工具, 一直以来也很想把该工具做的更加智能化一些, 可是工作之余,很少有时间, 所以新版本的代码生成工具一直停留在蜗牛式的开发过程中.
不过一直留意着代码生成工具的前沿情况, 有CodeSmith, MyGeneration, Codus都是不错的代码生成工具, 国内好像也还有一些做得不错的工具, 像好友Wintle的Codeplus, 还有一个叫李天平的同行也发布了一个, 各有各的特色.
很多代码生成器都是有一些自己的特点, 不过扩展性都不是很好, 也很少提供合适的模型让别人进行开发, 不过作为编程人员, 去适应别人还是很有好处, 可以快速得到生成的代码.
本人比较喜欢自己开发一些代码工具, 以帮助自己完成一些开发工作或者辅助开发, 因此就自己把各种数据库的元数据模型抽取出来, 并通过配置方式把这些数据库,表,字段, 还有存储过程,视图等等一一获取出来, 有了这些基础数据, 我就可以开展我各种代码生成的工作了.
开始的时候想, 要做就做的有特色一点, 除了支持多数据库, 最好还支持多语言, 因此就研究CodeDom, CodeDom的代码非常麻烦, 不过好一点的有Refly的CodeDom封装模块, 简化了很多, 有兴趣的可以参考(http://www.codeproject.com/csharp/refly.asp),不过使用了这个进行开发后, 发现代码定制要经常修改代码非常麻烦, 也不适合那种经常变动的情况, 而这个是我们代码生成工具的一个很重要的标准, 纵观很多代码生成工具, 好的做法还是使用模板引擎来进行开发, 如CodeSmith, MyGeneration一样, 而且提供了ASP.net相似的语法支持.
于是, 对模板引擎进行学习, 发觉NVelocity不错, 开源而且也比较容易学, 语法丰富, 因此将我的代码生成工具由原来的CodeDom方式改为使用使用模板引擎的方式, 获得了很好的弹性, 加快了代码生成的工作.
本人最早再Blog上发布的DAOCoder就是使用了NVelocity进行NHibernate的实体类和DAO代码的生成(有兴趣的可以参考http://wuhuacong.cnblogs.com/archive/2006/05/16/401399.html), 不过没有提供很好的界面(控制台程序), 那个时候的数据库模型基本上已经定形, 不过我还没有整合一些其他的生成模块(不过已经可以支持完整的PetShop架构的所有代码了), 就一直没有发布完成的代码生成工具. 不过大家可以参考一下工具的界面:
 

代码生成器软件下载地址: http://www.iqidi.com/download/Database2SharpSetup.rar 

本文转自博客园伍华聪的博客,原文链接:代码生成工具随笔(1) ---关于代码生成器,如需转载请自行联系原博主。

时间: 2024-09-25 17:27:47

代码生成工具随笔(1) ---关于代码生成器的相关文章

css3手册: 实用的 CSS3 参考手册和代码生成工具

CSS3技术现在越来越成熟,通过CSS3的一些新特性(如box-sizing.边界半径.文字阴影.渐变等)创建的效果已经令前端开发者兴奋不已.使 用CSS3进行前端设计是未来的发展趋势.因此,如果你是一名前端设计师,就需要掌握这些最新的技术,否则就有可能会被淘汰. 一.参考手册 1.  Idiomatic CSS 编写统一.符合习惯的CSS的原则,有中文版本. 2.  CSS3 Click Chart 示例代码和CSS3特性支持情况表. 3.  CSS3 Selector CSS3 Select

CSS3参考手册和CSS3代码生成工具加速你学习网页制作

文章简介:通过CSS3的一些新特性(如box-sizing.边界半径.文字阴影.渐变等)创建的效果已经令前端开发者兴奋不已.使用CSS3进行前端设计是未来的发展趋势.因此,如果你是一名前端设计师,就需要掌握这些最新的技术,否则就有可能会被淘汰. CSS3技术现在越来越成熟,通过CSS3的一些新特性(如box-sizing.边界半径.文字阴影.渐变等)创建的效果已经令前端开发者兴奋不已.使用CSS3进行前端设计是未来的发展趋势.因此,如果你是一名前端设计师,就需要掌握这些最新的技术,否则就有可能会

十款精心挑选的在线CSS3代码生成工具

今天这篇文章向大家推荐十款非常有用的在线CSS3代码生成工具,这些工具能够帮助你方便的生成CSS3特效.CSS3是对CSS规范的改善和增 强,增加了圆角.旋转.阴影.渐变和动画等众多强大的特性,它使得Web开发人员可以很容易的在网站中加入时尚的效果.以前很多需要编写 JavaScript才能实现的效果,如今只需几句简单的CSS3代码就能实现.  CSS3 Maker 这款工具非常强大,可在线演示渐变.阴影.旋转.动画等非常多的效果,并生成对应效果的代码,   Border Radius 一款简单

Thinkphp自定义代码生成工具及用法说明(附下载地址)_php实例

本文实例讲述了Thinkphp自定义代码生成工具及用法说明.分享给大家供大家参考,具体如下: 我最近沮丧的发现在使用Thinkphp很多时候我都在做重复的事情,比如重复写最简单的CRUD方法,编写表单,写前台样式表等等. Thinkphp对于后台操作的支持已经非常强大,再加上最近非常流行的Bootstrap框架让前台样式也变得容易遵循一个标准,于是我决定开始写一个属于自己的代码生成器. 我希望它操作足够简单,让人一看就懂,对MySql和Sqlite数据库都能够稳定生成CRUD代码就好,还如果还能

Thinkphp自定义代码生成工具及用法说明(附下载地址)

本文实例讲述了Thinkphp自定义代码生成工具及用法说明.分享给大家供大家参考,具体如下: 我最近沮丧的发现在使用Thinkphp很多时候我都在做重复的事情,比如重复写最简单的CRUD方法,编写表单,写前台样式表等等. Thinkphp对于后台操作的支持已经非常强大,再加上最近非常流行的Bootstrap框架让前台样式也变得容易遵循一个标准,于是我决定开始写一个属于自己的代码生成器. 我希望它操作足够简单,让人一看就懂,对MySql和Sqlite数据库都能够稳定生成CRUD代码就好,还如果还能

基于Metronic的Bootstrap开发框架经验总结(18)-- 在代码生成工具Database2Sharp中集成对Bootstrap-table插件的分页及排序支持

在我们开发系统界面,包括Web和Winform的都一样,主要的界面就是列表展示主界面,编辑查看界面,以及一些辅助性的如导入界面,选择界面等,其中列表展示主界面是综合性的数据展示界面,一般往往需要对记录进行合理的分页,集成各种增删改查的按钮等功能.随着开发项目的需求变化,对数据记录分页展示.排序等功能都是常态的要求,因此在代码生成工具中调整了主列表界面的列表展示插件为Bootstrap-table插件,本篇随笔主要介绍在代码生成工具Database2Sharp中集成对Bootstrap-table

代码生成工具之数据库表及字段名称转义

在上篇随笔<代码生成工具之界面快速生成>中介绍过了代码生成工具Database2Sharp是如何快速生成所需的Web界面以及各种Winform界面,其中包括生成即可运行的Web界面效果,Winform布局信息的生成.这些看似很简单的界面元素生成,其实是需要丰富的数据库元数据信息作为基础的,而且对不同的数据库处理要有所不同.本文介绍不同数据库之间元数据的处理差别,以及如何代码生成工具Database2Sharp如何兼容处理这些问题的. 1.常规的数据库表.字段名称的转义 例如,我们需要获取表的别

代码生成工具之Winform查询列表界面生成

在上面一篇随笔<代码生成工具之界面快速生成>介绍了代码生成工具Database2Sharp的界面生成操作,其中介绍了Web界面(包括列表界面.内容显示.内容编辑界面的生成,另外还介绍了Winform界面的内容编辑界面的生成,本篇主要继续介绍Winform界面生成中的查询列表界面的操作展示等信息. 基于Winform的界面生成,配合我的Winform开发框架,提供了三种不同的界面生成,包括传统界面样式.DotNetBar界面样式和DevExpress界面样式的代码生成,这几种界面是目前Winfo

(Oracle、SqlServer、Access)数据库开发代码生成工具SharpCode2.0

软件相关连接:    软件下载地址:http://221.237.165.15/wuhuacong/deepland/uploadfile/sharpcode20.rar    Demo程序下载地址:http://221.237.165.15/wuhuacong/deepland/uploadfile/SharpCode_Demo.rar    界面预览:http://221.237.165.15/wuhuacong/deepland/myHelpFile/SharpCode/Picture/0