本人比较早就开始编写代码生成器, 第一款的生成工具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) ---关于代码生成器相关推荐

  1. 狼奔代码生成工具使用心得

    狼奔代码生成工具(http://ltfwan.d33140.jit8.cn)是一款为程序员设计的代码生成器,更是一款软件项目智能开发平台,它可以自动生成ASP.NET页面及后台代码,采用了面向服务的架 ...

  2. 代码生成工具的分类及比较

    中国有句古语叫做"工欲善其事,必先利其器",用通俗的话来说就是"磨刀不误砍柴功",古人的这些话告诉我们:要把事情做好,事先应该准备合适的工具.工具不仅仅包括器具 ...

  3. 代码生成工具随笔(3)---占领最后一块黄金宝地

    目前代码生成工具多如繁星,绝大多数的代码生成工具都是基于数据库进行实体类.数据访问类.部分业务类等的代码生成,较少会用来生成易用.重用的界面代码,因为这块的逻辑很难控制,每个人的需求都不一样,而且把整 ...

  4. 同步数据流语言代码生成工具的研究进展

    摘要 同步数据流语言(如Lustre,Signal)近年来在航空.高铁.核电等安全关键领域得到了广泛应用,因此与这类语言相关的开发工具本身的安全性问题受到高度关注.同步数据流语言到串行命令式语言的代码 ...

  5. 代码生成工具随笔(2) ---我的生成工具

    目前有很多代码生成工具,很多做得很好,我在上一篇关于代码生成工具的随笔(代码生成工具随笔(1) ---关于代码生成器 )中,大概介绍了一些代码生成工具的现状,也得到很多人的关注. 由于本人很早就在代码 ...

  6. php后台代码自动生成程序,Thinkphp自定义代码生成工具及用法说明(附下载地址)...

    本文实例讲述了Thinkphp自定义代码生成工具及用法说明.分享给大家供大家参考,具体如下: 我最近沮丧的发现在使用Thinkphp很多时候我都在做重复的事情,比如重复写最简单的CRUD方法,编写表单 ...

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

    1.1 CodeSmith 一款人气很旺国外的基于模板的dotnet代码生成器 官方网站:http://www.codesmithtools.com 官方论坛:http://forum.codesmi ...

  8. 实用的 CSS3 参考手册和代码生成工具

    CSS3技术现在越来越成熟,通过CSS3的一些新特性(如box-sizing.边界半径.文字阴影.渐变等)创建的效果已经令前端开发者兴奋不已.使 用CSS3进行前端设计是未来的发展趋势.因此,如果你是 ...

  9. 如何提高程序员人效?代码生成工具/框架

    image.png 最近事情太多,很久没有更新简书,突然想起如何提高程序员人效这个问题,就推荐一篇代码生成工具/框架的文章. http://www.cnblogs.com/skyme/archive/ ...

  10. 什么? 你还没用过 Cursor? 智能 AI 代码生成工具 Cursor 安装和使用介绍

    作者:明明如月学长, CSDN 博客专家,蚂蚁集团高级 Java 工程师,<性能优化方法论>作者.<解锁大厂思维:剖析<阿里巴巴Java开发手册>>.<再学经 ...

最新文章

  1. 第二十一节(数组概要, 一维、二维数组的声明和使用,数组的排序,数组的查找,)...
  2. discuz如何去掉论坛的网页后缀名称forum.php
  3. Java面试通关要点汇总集之工程篇参考答案
  4. 关于IPC入侵的一些细节
  5. Spring Boot进阶之Web进阶 代码推送的github上面去
  6. 将信号量代码生成静态库以及动态库
  7. 【HDU 4394】Digital Square(bfs,数位搜索,思维,数学)
  8. 利用VMware Infrastructure SDK编程控制虚拟机集群(3)
  9. 坏消息!FCC默许美国ISP在未经批准之情况下出售用户数据!
  10. android camera工程师,Android从Camera中获取图片的两种方法
  11. 力扣645.错误的集合
  12. Java Swing/AWT API速查手册
  13. Vue报错:‘vue-cli-service‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  14. 回调函数的概念及使用
  15. Python报mongod: error while loading shared libraries: libcrypto.so.1.1
  16. html小写罗马字符怎么写,如何在 LATEX 中插入大小写的罗马字符
  17. 大数据训练营-hadoop篇-02
  18. URL Decode - URL解码函数
  19. 高德地图E/libEGL: call to OpenGL ES API with no current context (logged once per thread)
  20. 什么无线桥接一直正在链接服务器失败,无线桥接连接失败_WDS无线桥接不成功怎么办?-192路由网...

热门文章

  1. 阿里云推送:Android8.0及以上收不到推送的解决
  2. wifi信号增强android,WiFi信号增强大师
  3. 线阵相机调帧率_线阵相机调试文档
  4. 华硕电脑开启无线服务器,华硕ASUS路由器无线中继模式设置步骤图解
  5. 西安电子科技大学计算智能导论公茂果老师课程所有PPT
  6. 利用伊藤引理计算一般资产的微分方程
  7. 程序员做自媒体,龙叔教你怎么快速成为优秀博主【CSDN篇】
  8. 【数据结构】EOJ 1006. 线性链表的插入与删除
  9. 学生免费获取PyCharm专业版
  10. 解决实现虚拟机win10与主机文件的共享问题