基于模板引擎的代码生成器Smart Code预览

概述

国内写代码生成器的不少,可以说很多公司都有自己的代码生成器,好用的却不多,可定制性不强,始终不及CodeSmith或MyGeneration。最近园子里也发了不少的代码生成器,其中henryCodeFactory的VS插件很值得推荐。我个人最近也在写一个代码生成器,开始想写一个能满足公司项目基本要求的就可以了,后来觉的还是通用的比较好,于是就有了Smart Code。看到这么多朋友都发了代码生成器,我也提前show一把,不过我这个目前还在开发中,希望这个月底可以发布,到时将会提供下载。

特性简介

1.整体界面风格类似于Visual Studio。

TerryLee_SmartCode_003

2.完全基于自定义的模板引擎,模板使用ASP.NET的标记和C#语法进行编写。

TerryLee_SmartCode_001

模板编写完全类似与CodeSmith,可以使用Import导入命名空间,使用Assembly添加程序集,使用Include包含其他的模板文件,使用Property声明属性。同时,也可以使用<script runat="temlate"></script>编写代码片段。

TerryLee_SmartCode_002

3.支持属性的自定义,以及生成界面控件的配置。

数据表属性:

TerryLee_SmartCode_007

字段属性:

TerryLee_SmartCode_008

4.可以生成多种类型的项目,并且支持自定义项目类型。

TerryLee_SmartCode_004

5.生成的代码为完整的VS项目。

TerryLee_SmartCode_005

6.生成代码预览。

TerryLee_SmartCode_006

结束语

Smart Code目前仍在开发中,开发完成后,将会免费提供下载。同时,如果大家有什么好的建议和想法,欢迎发mail给我,非常感谢。
作者:TerryLee
出处:http://terrylee.cnblogs.com

作者:TerryLee
出处:http://terrylee.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted @ 2007-12-04 00:29 TerryLee 阅读(6777) 评论(126)  编辑 收藏 网摘 所属分类: [13]  代码生成

评论共2页: 上一页 1 2 
  回复  引用    
#101楼2007-12-04 19:46 | jt[未注册用户]
哦,看来博主美工技术也不错,让大家都误会了
  回复  引用  查看    
#102楼[楼主]2007-12-04 20:06 | TerryLee      
@jt
呵呵,美工水平一般,根本不入流:)

  回复  引用    
#103楼2007-12-05 09:17 | else[未注册用户]
TerryLee ,我要拜師呀,怎麼聯繫你
  回复  引用  查看    
#104楼[楼主]2007-12-05 09:57 | TerryLee      
@else
拜师可不敢当:)

blog右边有我的Email。

  回复  引用  查看    
#105楼2007-12-05 10:55 | lzlynn      
我汗~狂崇拜一下~
  回复  引用  查看    
#106楼2007-12-05 10:57 | lzlynn      
关注您的创意
  回复  引用  查看    
#107楼2007-12-05 11:06 | lzlynn      
您为我打开了更大的视野,从项目的开发,到工具的自架构..net的魅力又一次让我震撼!
  回复  引用    
#108楼2007-12-05 15:15 | gakaki[未注册用户]
我觉得虽然代码生成都很不错,但是唯独对界面层和数据层的传输那段代码没有生成工具生成

类似于
textbox1.text = Product.Name 这样的生成工具很少

我建议字段里在加上一个客户端验证的 正则表达式 用来生成js客户端验证

  回复  引用  查看    
#109楼2007-12-05 15:48 | kiler      
@gakaki

汗,这个就是自己写模板就行了,一点也不难。

  回复  引用  查看    
#110楼2007-12-05 20:25 | 高海东      
建议支持最新的c#3.0 vs2008 linq
  回复  引用    
#111楼2007-12-06 07:49 | jsq[未注册用户]
我想在cs开头,加一个这个模块的功能,谁开发和改动的
有没有这样的宏代码。
应该怎么加,我看sharpplus有,vs2005好像没有。

  回复  引用  查看    
#112楼2007-12-06 13:49 | Fencer      
楼主加油,到时候就用你的开发了,呵呵
  回复  引用  查看    
#113楼2007-12-06 16:41 | 张荣华      
可以考虑兼容codesmith的模板
并且在发布时,楼主应先写几个模板。

  回复  引用  查看    
#114楼[楼主]2007-12-06 23:06 | TerryLee      
@gakaki
这个编写模板啊~~~

  回复  引用  查看    
#115楼[楼主]2007-12-06 23:06 | TerryLee      
@高海东
上面的新建项目对话框中已经有LINQ to SQL的项目了!

  回复  引用  查看    
#116楼[楼主]2007-12-06 23:07 | TerryLee      
@Fencer
谢谢支持,我尽量做好

  回复  引用  查看    
#117楼[楼主]2007-12-06 23:07 | TerryLee      
@张荣华
发布的时候怎么可能不带模板呢?-_-

  回复  引用  查看    
#118楼2007-12-07 10:17 | Terry Dong      
期待ing。。。
以前一直再用codesmith,博主能否说一下,这个smart code 相对于codesmith的一些优缺点吗,两者都是基于模板的

一直关注楼主的博客,学习~~~呵呵

  回复  引用  查看    
#119楼[楼主]2007-12-07 11:01 | TerryLee      
@Terry Dong
1.从模板语法上说,两者的语法非常相似,但是SmartCode只支持C#语言进行模板的编写(以后可能会扩展Vb.Net),而CodeSmith只是任何一种语言

2.CodeSmith支持编写模板时的智能提示功能,而SmartCode目前还做不到这一点。

3.SmartCode支持生成完整的解决方案,包括表、字段属性的可配置,这一点可能CodeSmith无法做到。

4.SmartCode是国产的,也是免费的:-)

  回复  引用  查看    
#120楼2007-12-07 14:26 | Terry Dong      
@TerryLee
谢谢~~发布了一定试用下,呵呵

  回复  引用  查看    
#121楼2007-12-07 15:42 | MLY      
俺用过动软的那个,感觉还成,请问这个跟动软的那个有什么区别和特殊的地方,总体方向是一样的吗
同时关注中:)
这个界面挺好看的说..

  回复  引用  查看    
#122楼[楼主]2007-12-09 22:03 | TerryLee      
@MLY
1.SmartCode完全基于模板引擎,可以自行修改模板,而动软的好像没有提供;
2.生成的代码为完整的解决方案。
3.支持表、字段的属性配置。

  回复  引用  查看    
#123楼2007-12-10 09:37 | 静水≈深流      
关 关关注一下
  回复  引用  查看    
#124楼2007-12-10 10:03 | MLY      
基于模板的没用过......才疏学浅了.....
决定就拿楼主的这个开刀了....

  回复  引用  查看    
#125楼2007-12-10 11:28 | WideWeide      
3.SmartCode支持生成完整的解决方案,包括表、字段属性的可配置,这一点可能CodeSmith无法做到。
----------------------------------
CodeSmith可以生成解决方案,比如NetTiers

表、字段属性好像还无法配置。PowerDesigner设计的配置信息似乎足够丰富了,可惜自定义模板太麻烦了:(

  回复  引用  查看    
#126楼2007-12-10 12:44 | leoxu      
支持, 哈哈。 这个诱惑力挺大的。关注。
  回复  引用  查看    
#127楼2007-12-11 10:56 | Clark Chan      
关注!

另外关于代码生成器如何循环的问题,我很有兴趣。
比如:用一个模版A+实体B,生成了代码C
如何用模版A+实体BDEFG,循环生成代码CHIJK。一直未能解决,期待能在学习到相关知识。

ps:看来年末新一轮的代码生成时代又来了,我也要开始拣起几月前的MDA生成器。主要是在做VS那棵解决方案树的常用操作,以及属性窗口显示和编辑。要是哪位大侠有开源的模型编辑代码(根据模型图维护实体字段)不妨介绍哈,谢谢。

  回复  引用  查看    
#128楼2007-12-11 11:20 | HOH      
师兄,你用的那套图标在哪找的?能告诉我吗?或者发一分图标给我吗?hoh728@163.com
  回复  引用  查看    
#129楼[楼主]2007-12-11 19:24 | TerryLee      
@MLY
希望我可以尽快发布

  回复  引用  查看    
#130楼[楼主]2007-12-11 19:25 | TerryLee      
@WideWeide
嗯,我看了一下NetTiers,文件好多:)

  回复  引用  查看    
#131楼[楼主]2007-12-11 19:25 | TerryLee      
@leoxu
呵呵

  回复  引用  查看    
#132楼[楼主]2007-12-11 19:26 | TerryLee      
@Clark Chan
这个没有什么问题吧,循环调用模板就可以了啊,在模板中以实体作为输入参数就可以了:)

  回复  引用  查看    
#133楼[楼主]2007-12-11 19:27 | TerryLee      
@HOH
图标是直接从VS上抓取的:)

  回复  引用  查看    
#134楼2007-12-12 19:49 | 岁月如歌      
与Codesmith有什么区别?如果比Codesmith好用的话,我会考虑用你这个。
希望能导出Codesmith的模板。

  回复  引用  查看    
#135楼[楼主]2007-12-12 21:51 | TerryLee      
@岁月如歌
1.从模板语法上说,两者的语法非常相似,但是SmartCode只支持C#语言进行模板的编写(以后可能会扩展Vb.Net),而CodeSmith支持任何一种语言

2.CodeSmith支持编写模板时的智能提示功能,而SmartCode目前还做不到这一点。

3.SmartCode是国产的,也是免费的,甚至会开源:)

  回复  引用  查看    
#136楼2007-12-13 16:24 | 岁月如歌      
关注中,加油~加油~
  回复  引用    
#137楼2007-12-13 17:48 | WaitdDing[未注册用户]
代码生成器的确可以减轻很多开发过程中的重复工作量.特别是能根据自定义的模板来定制更是很方便.我想请问下LZ,Smart Code有DeBug模板的功能吗?有的话,我想在编写模板的过程中可以减少编写的时间哦.
  回复  引用    
#138楼2007-12-13 17:54 | WaitdDing[未注册用户]
LZ你好,刚刚在逛Code Project的时候无意中发现一篇文章,也是介绍Code Generateor的.那篇文章中提到的代码生成器的名字和你的很像:SmartCode.(中间无空格).我看了一下,从已经有的截图上看没有什么雷同的地方.但考虑到以后开源(LZ说是可能:^_^),我想软件的名称如果有雷同应该会有一些不大不小的麻烦的,希望LZ能够注意一下.
PS:附上URL:http://www.codeproject.com/KB/dotnet/SmartCode-Code_Generation.aspx

  回复  引用  查看    
#139楼[楼主]2007-12-13 19:46 | TerryLee      
@岁月如歌
谢谢:)

  回复  引用  查看    
#140楼[楼主]2007-12-13 19:48 | TerryLee      
@WaitdDing
谢谢,我也在考虑是不是该换个名字,等想好了再换吧,其实叫SmratCode的在我之前有两个代码生成器呢:)

Smart Code目前还没有提供Debug的功能,我最近正在看Visual Studio 2008 Shell,考虑是不是用它来实现呢?

  回复  引用    
#141楼2007-12-13 22:14 | WaitdDing[未注册用户]
呵呵,相信LZ会想出好的解决方式的.VS2008还没有怎么用去,不过听倒是听得很多.
名字的话可以向园子里的兄弟征集一下啊,建议而已.
基于模板的技术我是很感兴趣的,希望有机会研究一下.

加油!!!!!

  回复  引用  查看    
#142楼[楼主]2007-12-14 10:44 | TerryLee      
@WaitdDing
嗯,等完成后发布第一个版本,就向园子里的弟兄征询意见,呵呵

  回复  引用  查看    
#143楼2007-12-15 15:51 | 助燃      
希望发布后能够自带连接oracle的三层模板,至少自动生成带参sql语句里面不会出现@
  回复  引用  查看    
#144楼2007-12-17 16:13 | ColdDog      
我就关心WeifenLuo.WinFormsUI.Docking 这个怎么用的?
我怎么就是用不来呢?楼主帮我一下...

  回复  引用  查看    
#145楼[楼主]2007-12-17 18:57 | TerryLee      
@ColdDog
下载后有带的Demo啊

  回复  引用  查看    
#146楼2007-12-18 11:04 | WhyCome[at]live.cn       
现在进度如何了?
beta也好,等着试用呢!
(*^__^*) 嘻嘻……

  回复  引用  查看    
#147楼2007-12-19 11:42 | ithurricane      
不错啊,到时候好好学习一下

  回复  引用    
#148楼2007-12-20 17:47 | galactic[未注册用户]
I am waiting for it
  回复  引用  查看    
#149楼2007-12-20 17:48 | OceanKIng      
非常期待
  回复  引用  查看    
#150楼2007-12-23 11:50 | try      
  回复  引用  查看    
#151楼2007-12-24 11:32 | 舞指如歌      
支持李兄!
  回复  引用  查看    
#152楼2007-12-26 19:00 | Gavin.W.Lai(赖文华)      
期待前辈的佳作!
  回复  引用  查看    
#153楼2007-12-27 00:06 | Cruise      
期待ing...

  回复  引用    
#154楼2007-12-28 15:51 | 你好ma[未注册用户]
迫不及待的想看看李兄的作品
  回复  引用  查看    
#155楼2007-12-28 16:14 | ColdDog      
月底都到了,怎么还没讯息?
  回复  引用    
#156楼2007-12-31 14:02 | winsonet[未注册用户]
感觉很不错啊,呵,不知什么时候能发布呢?
  回复  引用  查看    
#157楼2008-01-03 13:18 | wenanry      
太niu b了。
  回复  引用  查看    
#158楼2008-01-03 13:18 | wenanry      
太niu b了。加快速度开发吧,等着使用。
  回复  引用    
#159楼2008-01-03 15:57 | EasyCode[未注册用户]
--引用--------------------------------------------------
TerryLee: @WaitdDing
谢谢,我也在考虑是不是该换个名字,等想好了再换吧,其实叫SmratCode的在我之前有两个代码生成器呢:)

Smart Code目前还没有提供Debug的功能,我最近正在看Visual Studio 2008 Shell,考虑是不是用它来实现呢?
--------------------------------------------------------
叫EasyCode吧
我的代码生成器就是这个名字,不过我做的太简单了,只能自己使用。呵呵

  回复  引用  查看    
#160楼[楼主]2008-01-03 18:34 | TerryLee      
@你好ma
@ColdDog
@winsonet
@wenanry
感谢各位的关注,最近看了一下Visual Studio 2008 Shell,打算基于VS Shell来开发,所以要过段时间发布了。

  回复  引用  查看    
#161楼[楼主]2008-01-03 18:35 | TerryLee      
@EasyCode
等我做出来,大家一起讨论一下名字,呵呵,EasyCode也不错:)

  回复  引用  查看    
#162楼2008-01-09 10:44 | ColdDog      
--引用--------------------------------------------------
TerryLee: @EasyCode
等我做出来,大家一起讨论一下名字,呵呵,EasyCode也不错:)
--------------------------------------------------------
呵呵,这个@EasyCode就是我~
希望早日看到你的大作
我的那个简陋的东西就叫小EasyCode吧:)

  回复  引用  查看    
#163楼[楼主]2008-01-09 18:29 | TerryLee      
@ColdDog
:)

  回复  引用  查看    
#164楼2008-03-22 09:42 | HOH      
看来这工具是又夭折了,唉
  回复  引用  查看    
#165楼2008-03-24 14:07 | Howard Queen      
@HOH
??夭折了?

  回复  引用  查看    
#166楼2008-03-26 14:34 | ChenMo      
不错!还在期待中。

代码编辑器是用 ICSharpDevelop.TextEditor 做的不?

  回复  引用    
#167楼2008-05-04 03:57 | czt[未注册用户]
基于VS Shell来重新开发,大动干戈了哟!最近看了你的很多文章,确实不错,等吧,相信你一定拿出超越CodeSmith的作品来!(对了,代码智能感知功能一定要弄出来)
  回复  引用    
#168楼2008-05-07 11:04 | StanleyX[未注册用户]
楼主大人 更新的如何了? 很期待啊
  回复  引用    
#169楼2008-05-13 21:37 | pochonlee[未注册用户]
李兄应该透漏一下进展的怎么样了???
  回复  引用  查看    
#170楼2008-05-20 13:29 | mikelij      
hoho, 我在和Terry差不多的时间里开发了一code generator, 和Terry的差不多. 不过界面就没有Terry的好了. 我的code generator界面是很朴素的. 唯一稍微好的是我的code editor是自己做的. 带有代码上下文自动语法提示和代码完成的特性(当然比不上visual studio了). 我在cnblogs贴了两个贴图. 由于当时没有打算提供下载, 当时好多人不满. 哈哈. 现在我已经把我的贴子删除了.
其实我和Terry差不多, 还在开发中, 实在不好意思在有很多问题的时候发出去. 目前在开发一个模板.
希望能和Terry交流下.

  回复  引用    
#171楼2008-07-08 10:31 | 路过[未注册用户]
是不是流产了,怎么这么久了还没有公开?别忽悠人玩呀!
  回复  引用  查看    
#172楼[楼主]2008-07-08 16:26 | TerryLee      
@路过
你太抬举我了,我没那么多的时间来忽悠你玩!

  回复  引用    
#173楼2008-07-08 16:37 | 路过[未注册用户]
说错话了,楼主莫怪!其实就是想看看你是不是还在关注大家的期盼之心?呵呵,期待你的大作!最近研究了你之前推荐的smartcode,感觉还是挺好的的。不过你的这个smartcode更具诱惑力!
  回复  引用    
#174楼2008-07-08 16:39 | 路过[未注册用户]
李天平的那个也蛮好用,就是可定制性差了点,虽然他提供了BLL和DAL的插件重写机制,但是却没有提供Web的插件重写。
  回复  引用  查看    
#175楼[楼主]2008-07-09 19:45 | TerryLee      
@mikelij
sorry,今天刚看到你的评论,不知道你什么时候发的Email,我一直没有收到过。

  回复  引用  查看    
#176楼2008-07-09 20:12 | mikelij      
@TerryLee
大约一个多月前(就是五月份了)我往你那个163.com信箱里面发过一封信. 你要还愿意交流的话,可以加我的msn: realwar3 at hotmail.

  回复  引用  查看    
#177楼[楼主]2008-07-10 09:46 | TerryLee      
@mikelij
OK,我已经加你了

  回复  引用    
#178楼2008-08-08 11:06 | 路过[人][未注册用户]
请问可以发布,期待中
  回复  引用    
#179楼2008-09-16 15:11 | 我是一个过路人[未注册用户]
现在发布了吗?都大半年过去了
  回复  引用  查看    
#180楼[楼主]2008-09-17 00:50 | TerryLee      
@我是一个过路人
或许已经夭折,或许几个月后会重新开始:)

  回复  引用  查看    
#181楼2008-09-26 18:06 | SuperSaiyan      
路过.
我既有好话, 也有坏话.
好话是, 显示了不错的实力, 要祝贺一下.
坏话是, 方向错误. 如果仅仅是玩玩, 那到也没什么, 不过, 程序员没有完完全全不考虑工作的实际价值就冒然去做的. 这样的代码生成器, 其实也是不小的项目, 况且已经有若干个大公司的不错的同类东西了. 就算你做的好, 能顶上codesmith的一公司人吗? 就算你做的更好, 能顶的过微软大恐龙的免费代码生成器吗.

  回复  引用  查看    
#182楼[楼主]2008-10-08 18:41 | TerryLee      
@SuperSaiyan
首先你要搞清楚一个问题,并不是所有公司的同类东西都是免费的,都是开源的,我想做的是一个实实在在的开源项目。

话又说回来,国内做这个的,优秀的代码生成器还真没有几个,CodeSmith能实现的功能,也不见的我们就实现不了!

  回复  引用    
#183楼2008-10-30 13:49 | 读者A[未注册用户]
Terry的这个Smart Code是给你公司做的吧.是不是不能拿出来了.
  回复  引用    
#184楼2008-10-30 13:52 | 读者A[未注册用户]
@SuperSaiyan
据我的一个在微软的同事说,微软内部也是有n多代码生成器.但是都有局限.想想也是. 毕竟人是灵活的,程序是呆板的.

  回复  引用  查看    
#185楼[楼主]2008-10-30 17:52 | TerryLee      
@读者A
不是,只不过好久没有开发了,如果有机会,我会重新更新的。

  回复  引用    
#186楼2008-11-17 10:14 | 你的追随者[未注册用户]
代码生成器出来了吗?期待中
  回复  引用  查看    
#187楼[楼主]2008-11-17 23:14 | TerryLee      
@你的追随者
呵呵,还没呢

  回复  引用  查看    
#188楼2008-11-18 14:27 | 刘雄飞      
我正准备挑战你
  回复  引用  查看    
#189楼[楼主]2008-11-19 09:30 | TerryLee      
@刘雄飞
欢迎挑战,呵呵,有挑战才有进步嘛

  回复  引用    
#190楼2008-12-03 23:24 | conquer[未注册用户]
李大哥,什么时候提供下载呀.
  回复  引用  查看    
#191楼2008-12-14 10:08 | mikelij      
@刘雄飞
@TerryLee
刘雄飞, 我先来挑战一下TerryLee. 我发布了基于模板引擎的小工具.
http://www.cnblogs.com/mikelij/archive/2008/12/13/1354268.html" target="_new">http://www.cnblogs.com/mikelij/archive/2008/12/13/1354268.html

  回复  引用  查看    
#192楼[楼主]2008-12-15 11:37 | TerryLee      
@mikelij
欢迎挑战,呵呵:)

  回复  引用    
#193楼2008-12-16 13:44 | fixok[未注册用户]
什么时候能提供下载?
  回复  引用    
#194楼2008-12-16 13:53 | fixok[未注册用户]
人多力量大。大家帮你找bug,让你的作品更优秀。
  回复  引用  查看    
#195楼[楼主]2008-12-17 11:28 | TerryLee      
@fixok
由于各种原因,现在还没有一个完善的版本提供下载,抱歉:)

  回复  引用    
#196楼2008-12-17 11:46 | fixok[未注册用户]
有具体时间吗?大概也行。
  回复  引用    
#197楼2008-12-18 17:29 | 。net[未注册用户]
就是啊,有大概时间吗?
  回复  引用  查看    
#198楼[楼主]2008-12-19 01:31 | TerryLee      
@fixok
@。net
现在已经不是时间的问题了,涉及到很多问题,还没确定。

  回复  引用  查看    
#199楼2009-05-29 15:58 | billrobin      

等待您的代码生成器出世。

  回复  引用  查看    
#200楼[楼主]2009-05-31 09:41 | TerryLee      
@billrobin
由于其他的原因,暂时不会放出来了,抱歉。

  回复  引用  查看    
#201楼2009-06-19 10:19 | caijinxing      
基于模板才是正道啊 目前很生成工具都是固定一种架构 不同设计的项目 需要修改生成工具 局限很大 又时改生成器 还不如自己写代码来得快
基于模板 这个思路或许能让生成器成为编译器之上的一种通用工具 以后更多人能够解放啦 自从有了织布机 再也不用一针一线织毛衣
学习了 期待你的作品

评论共2页: 上一页 1 2 



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 981719




相关文章:

相关链接: