『 天道酬勤 』 www.LiTianping.com 李天平的博客

君子之行,静以修身,俭以养德。非淡泊无以明志,非宁静无以致远。

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  115 随笔 :: 18 文章 :: 1903 评论 :: 59 Trackbacks

由于最近太忙,公司事情很多,家里又在装修(不过,房子马上就要装修完了,心里还是蛮高兴得)。所以最近也没有对软件做太多更新。对很多网友的来信也没有及时回复,在此表示歉意。
同时,Codematic生成器和示例项目Codematicdemo的一些问题也没来得及更新。五一期间偶有空闲,把示例项目CodematicDemo的源码升级到.net2.0,对代码作了部分整理,(代码还只是一部分,仅供学习)。由于很多网友对Codematic1.0自己升级时出现很多问题,这个项目可以帮助新接触asp.net2.0的朋友和升级失败的朋友了解2.0,希望能对进一步学习2.0有一点点帮助。该项目基于VS2005+SQL2000/2005开发,是一个三层结构的范例项目,如果结合Codematic将会大大提高开发效率和周期。

下载地址
http://www.maticsoft.com/softdown.aspx

借此正式宣布Codematic官方发布平台 和 动软论坛 正式开通!
详情请访问http://www.maticsoft.com/   和 http://bbs.maticsoft.com/

同时Codematic 2.0版仍在开发中,一些功能还没有完成。
下面仅是代码生成器Codematic 2.0 beta 版已完成的部分截图,应部分网友要求先睹为快。

多类型数据库统一注册集中管理

增加了存储过程和视图

自定义条件代码生成,支持选择字段和条件(主键)字段

根据模板+数据库生成代码

posted on 2006-05-10 21:23 李天平 阅读(18246) 评论(105)  编辑 收藏 所属分类: ASP.NET开发.Net代码自动生成器

评论

#1楼  2006-05-10 23:10 aysun168      
谢谢,最近做的项目就是用你的生成器做的,再次感谢!
不过我觉得在以后的版本里是不是多增加几种架构?把现在知名的架构都集成上去?
再一次支持!
  回复  引用  查看    

#2楼  2006-05-11 00:12 retw [未注册用户]
..
  回复  引用    

#3楼  2006-05-11 01:15 维生素C.NET      
感谢+支持+学习 :-)
  回复  引用  查看    

#4楼  2006-05-11 09:29 milestone      
我用过以前的版本,并在我的项目使用,多谢.愿她越来越好!!!!!!!!!!!!!!!!!支持.
  回复  引用  查看    

谢谢,辛苦了
  回复  引用    

#6楼  2006-05-11 12:00 hanyonglu [未注册用户]
好呀!
  回复  引用    

#7楼  2006-05-11 13:51 契约      
好得没有话说了!
支持
  回复  引用  查看    

向李天平老师学习,向您道一声谢谢阿。
  回复  引用    

#9楼  2006-05-11 19:58 spgoal      
真佩服你的界面设计
  回复  引用  查看    

#10楼  2006-05-11 20:40 Hurry [未注册用户]
期待新版本
  回复  引用    

#11楼  2006-05-11 23:18 InterMa      
加油加油,:-)

  回复  引用  查看    

#12楼  2006-05-12 16:30 poo [未注册用户]
一直支持,太强
要通透很多底层的东西才能做出这样的软件。
而且,程序强往往界面弱,可是你为什么就是两全其美。
赞。
因为业务的原因,倒回去研究了一段时间asp,现在又回来了。渴望得到指点
  回复  引用    

#13楼  2006-05-12 17:51 tree505 [未注册用户]
能不能开一个技术论坛呢?或者一个QQ群..

因为现在出现错误了,都没法解决.出现的一个问题我已经忙了二天时间了..但
现在还得不到解决..
  回复  引用    

#14楼  2006-05-12 20:41 飘渺峰 [未注册用户]
偶在使用李大侠的代码生成器时发现,经常报它的字符串初始化错误,提示是这样的:

“从索引0开始,字符串初始化不符合规范!”
郁闷!麻烦说以下啦。。。谢谢

  回复  引用    

你好,我是台湾的.net初学者,在使用你的程式之后方便了许多也学到了不少,不知道是不是能把程式翻成英文版或繁体中文版的版本,这样在复制程式码时才方便不会一直要转码,感谢~~~
  回复  引用    

#16楼  2006-05-13 08:00 - 天道酬勤      
@tree505, 上面不是写着动软论坛的地址吗?
@飘渺峰,请说详细一些,或截图发给我,也可以来论坛让大家来共同讨论。
@我是初学者,可以考虑你的建议.

  回复  引用  查看    

#17楼  2006-05-13 11:38 Niels      
LZ辛苦了,
建议把字段的备注也添加上,在生成代码的时候就以备注作为该字段的注释内容,本人觉得这点很有必要
  回复  引用  查看    

我刚工作一个月,用您的程序使代码量变少了很多,非常感谢。
  回复  引用    

#19楼  2006-05-14 23:24 陈晓勇 [未注册用户]
LZ辛苦了
  回复  引用    

#20楼  2006-05-15 23:24 周伟 [未注册用户]
谢谢李老师!
  回复  引用    

#21楼  2006-05-16 11:47 小李 [未注册用户]
李老师辛苦了..
不知道2.0还会不会提供免费下载..
  回复  引用    

#22楼  2006-05-19 00:27 alpha_zjg [未注册用户]
顶!!!
  回复  引用    

真的很好!!!
  回复  引用    

#24楼  2006-05-28 14:41 zhouwei [未注册用户]
关注中!
  回复  引用    

#25楼  2006-05-30 23:11 xiaojoe [未注册用户]
佩服 !
  回复  引用    

期待中......
请考虑增加一些方便菜鸟们使用的功能。谢谢了
  回复  引用    

#27楼  2006-06-01 10:34 blockhead      
不得不佩服啊,我看过你的1.0版本,越来越好了,现在做的项目就用了你这工具,效率好高啊,又可以偷懒一下了,非常感谢!!!
  回复  引用  查看    

#28楼  2006-06-02 10:33 发芽的豆子      
热烈祝贺!
  回复  引用  查看    

#29楼  2006-06-10 14:07 zhouwei [未注册用户]
支持中............
  回复  引用    

相当不错!
用C#+ADO实现建表,建库是很容易做到。
但是做出查询分析器这样的效果来就真的需要工夫了。
呵呵!

生成代码也不是不能实现,拼接字符串应该就可以了。
但是连框架一起生成,又需要工夫了。

老兄连用户控件也玩的溜。
不过老兄界面层的代码好象写的有点不精练。。
嘿嘿。
不及也,不及也!

  回复  引用    

#31楼  2006-06-13 20:18 ring1      
李兄,不错不错!!
  回复  引用  查看    

#32楼  2006-06-14 21:18 netpetboy [未注册用户]
兄弟,怎么都不能下载了,我的QQ51977431
  回复  引用    

#33楼  2006-06-16 10:12 soft [未注册用户]
佩服开源精神
  回复  引用    

#34楼  2006-06-16 10:15 soft [未注册用户]
佩服
  回复  引用    

#35楼  2006-06-24 17:25 landlordh [未注册用户]
開源的生成器很多,你這款很不錯
今天無意中看到并試用了一下,功能還有些需要完善
像我對數據實體要求非常高,擴展模版時,居然只有兩個屬性
看了下源碼,原因出在GetXml2 & GetXml函數中
建議修改如下(如果讓用戶知道屬性值,更便于用戶擴展模版)
BuilderTemp
GetXml2 & GetXml
writer1.WriteStartElement("FIELD")
writer1.WriteAttributeString("Name", text1)
writer1.WriteAttributeString("Type", text2)
下面增加
writer1.WriteAttributeString(row1.Table.Columns.Item(3).ColumnName, row1.Item(3).ToString)
writer1.WriteAttributeString(row1.Table.Columns.Item(4).ColumnName, row1.Item(4).ToString)
writer1.WriteAttributeString(row1.Table.Columns.Item(5).ColumnName, row1.Item(5).ToString)
writer1.WriteAttributeString(row1.Table.Columns.Item(6).ColumnName, row1.Item(6).ToString)
writer1.WriteAttributeString(row1.Table.Columns.Item(7).ColumnName, row1.Item(7).ToString)
writer1.WriteAttributeString(row1.Table.Columns.Item(8).ColumnName, row1.Item(8).ToString)

鼓勵一下
  回复  引用    

#36楼  2006-06-26 21:07 guo [未注册用户]
thank you
  回复  引用    

感谢
  回复  引用    

#38楼  2006-06-29 09:37 zkxp      
还要等多久呢
  回复  引用  查看    

还要等多久呢
  回复  引用    

我是印度的一个程序员,在最近的项目中用这个软件,感觉很不错,希望能早日推出2.0版
  回复  引用    

#41楼  2006-07-06 08:39 wuChang      
partial
partial
partial
partial
partial
partial
partial
partial

建议生成的 model和DAL类都加了partial关键字!!!!!!
  回复  引用  查看    

建议将生成的代码书写规范加强
  回复  引用    

#43楼  2006-07-11 00:30 wf [未注册用户]
太佩服了,对多层结构一巧不通的人也可以做多层结构的项目了,服死你了,多层结构这两天正郁闷着我了,哈哈 现在开心了
  回复  引用    

#44楼  2006-07-11 08:23 cdlkjds [未注册用户]
http://www.delphibbs.com/keylife/iblog_show.asp?xid=20415


我也写了一个代码自动生成器,支持Oracle和SQL Server,功能没有你的多,但是也有自己小优点,而且是开源的。

主要功能有:
1,单表的数据存取,你也有;
2,任意查询的Model;
3,自动生成调用存储过程的代码,以及生成存储过程的参数Model;

我写这个东东的目的完全是自己方便,理论依据不强。
  回复  引用    

#45楼  2006-07-19 17:16 <>neilzhang      
我咋就没看出开源来呢?

生成器的源码能拿来研究研究吗?
  回复  引用  查看    

#46楼  2006-07-27 16:16 浪淘沙      
罗列几个问题:
 
1.Bigint和Int不能区分?我用Bigint的字段生成实体类后只能是int类型
2.左边数据库连接的那个TreeView如果没有点右键选择“连接数据库”而直接双击打开就抱错了,大概是空对象引用。估计没有自动实例化那个Connection就准备展开;
粑粑糖

  回复  引用  查看    

#47楼  2006-07-28 19:03 pegger [未注册用户]
thank you!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
thank you!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
thank you!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
thank you!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
thank you!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
thank you!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
thank you!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  回复  引用    

因为电脑装的是 .Net Framework 所以下载了2.0版本安装(Maticsoft CodeBuild 2.0 (050530)),但好像有好多东西不能操作,是不是还没有全部完成呢?
  回复  引用    

#49楼  2006-08-01 14:03 xpok [未注册用户]
天平兄确实是个勤奋的人
  回复  引用    

#50楼  2006-08-02 10:34 luanwey [未注册用户]
你LTP功能很不错。。。又是免费的。。难得。。。。界面也很漂亮。。。希望能越来越强。。。当然也需要CODER们。。给李老师提意见
  回复  引用    

#51楼  2006-08-12 22:03 小鬼 [未注册用户]
什么时候开始收费呢?
  回复  引用    

#52楼  2006-08-18 02:09 520 [未注册用户]
.net 2.0版本的在生在使用“自动输出代码”里,使用单类构时会出错。

可不可以给个模版的详细使用实例。
  回复  引用    

李老师:你好,用你的生成器也已经有好一段时间了,其他都感觉还好,就是有一个问题,你那些实体类的操作都是针对单表的操作啊,现在我想如果表和表之间有着一些关系的情况下,比如"一对多"或者"多对一"的情况下,是否可以设置一些相关的联系?比如A类的A1属性的类型是表B对应的实体类的类型,如果可以设置的机好了:
class a
{
public b a1
{
.........
}
}

class b
........

你说呢?
  回复  引用    

#54楼  2006-08-28 22:19 hougoo [未注册用户]
昨天下载了2.0版本的想用一下,可是好多功能无法使用?是还没有开发完成还是下载的版本有问题?
而且下载的网站好像也进不去了,昨天还可以的!

  回复  引用    

#55楼  2006-09-06 16:45 cqcya [未注册用户]
新版什么时候出来
  回复  引用    

#56楼  2006-09-08 13:29 xjii [未注册用户]
大家也可以尝试一下 CodeSmith 的,更灵活,功能更强。就是入门稍微有点难。
  回复  引用    

#57楼  2006-09-25 13:51 skyey [未注册用户]
支持! 感觉在多国语言支持方面要加强!功能灵活些!!bug可以慢慢改
  回复  引用    

能不能封装成控件呢?

代码生成之后就是“死的”了,要想修改只有重新编译后才能生效。

而分装成控件就可以很灵活了。


不是一个控件,而是一系列的控件,比如显示数据的、分页的、表单控件、查询控件等。

既然能生成代码,为何不抽象成控件呢?

金色海洋(jyk) http://jyk.cnblogs.com/
  回复  引用  查看    

#59楼  2006-10-13 08:05 xiafeng [未注册用户]
一直在用,什么时候出新版本啊
  回复  引用    

THANKS!
http://www.85sp.cn
http://www.39sp.com.cn
  回复  引用    

什么时候出新版本啊,支持

<a target="_new" href="http://www.vesoft.net">www.vesoft.net</a>
  回复  引用    

#62楼  2006-11-01 10:38 oyo [未注册用户]
为什么LTP生成数据库文档和代码自动生成我这里用不了.一点击生成按钮,下面的进度条显示0就不动了.我用的access数据库.和这有关吗
  回复  引用    

#63楼  2006-11-06 16:49 xiafeng [未注册用户]
什么时候出新版本啊
  回复  引用    

楼主现在休息了吗?

呵呵,大家对你期待很大哟

可这么久都没新消息了
  回复  引用    

好同志,继续努力哦!

  回复  引用    

#66楼  2006-11-25 10:39 Wisli [未注册用户]
老大,写得很不错,很想学习一下你的工具和demo,我怎么不可以下载啊,你可不可把你的demo传给我啊,谢谢
wqjch@163.com
  回复  引用    

#67楼  2006-11-29 13:12 hooyke [未注册用户]
楼主 ,只想说声谢谢你的分享
  回复  引用    

#68楼  2006-12-15 09:03 zhaoyk [未注册用户]
报告一个bug先,在数据库排序规则设置为Chinese_PRC_BIN时,会报sysobjcts找不到的异常。1.97与2.0 alpha 都这样
  回复  引用    

能提供一个连接oracle数据库的例子吗?
  回复  引用    

#70楼  2006-12-23 09:44 Tonyyang [未注册用户]
什么时候出新版本啊 ?
  回复  引用    

#71楼  2007-01-05 13:56 杨作伟 [未注册用户]
李老师:你好 !下载的您的 。net知识库 打开后全部都不能显示,不知道是什么原因!知识库中的内容实在是太好了,我迫切需要!
是不是因为我下载的不对?
非常感谢您提供这么多好东西!
  回复  引用    

#72楼  2007-01-05 21:22 路过 [未注册用户]
@杨作伟 ,net知识库打开后不能显示,可能是目录里面有中文,文件夹的名字是中文的,把文件放到根目录或换个目录试试。

  回复  引用    

#73楼  2007-01-08 14:59 Tonyyang [未注册用户]
什么时候出新版本啊 ?
  回复  引用    

@Tonyyang,应该会在春节前后吧,后期会尽快完善现有版本的bug和一些功能,尽量让大家生成过程中少作修改,由于各方面原因好长时间未作版本更新,由此给大家带来的不便,深表歉意。
  回复  引用    

很不错,支持
  回复  引用    

#76楼  2007-01-11 09:24 xunuo512 [未注册用户]
非常好的C#开发工具。大力支持李兄!
  回复  引用    

#77楼  2007-01-11 09:26 xunuo      
希望能尽快的看到正式版
  回复  引用  查看    

#78楼  2007-01-29 14:09 因 [未注册用户]
用这个工具生成了部分代码,确实方便了不少啊:)
感谢!!

  回复  引用    

#79楼  2007-02-01 15:30 jackwcm [未注册用户]
李老师,怎么我下载了,安装不成功啊
  回复  引用    

#80楼  2007-02-14 09:45 klxjp1981 [未注册用户]
期待她的功能越来越强
  回复  引用    

#81楼  2007-04-11 10:33 Winket [未注册用户]
感谢!
  回复  引用    

#82楼  2007-04-12 19:14 attack [未注册用户]
你好李老师,我下了Codematicdemo2.0版安装成功后,发现新建项目框架没法用,选了模板,设了名称,然后点浏览和确定都没有反应,好象这两个按钮没有执行命令。请问是软件没做完还是我系统有问题?我是2003SERVER,VS2005,.NET FRAMEWORK2.0
  回复  引用    

nvarchar(10)的字段,在存储过程中变成
@user nvarchar(20) ,了,增加了一倍?
  回复  引用    

#84楼  2007-04-28 17:54 cyz [未注册用户]
李老师,你好!
我下了Codematicdemo2.0版安装成功后,发现新建项目框架没法用,选了模板,设了名称,然后点浏览和确定都没有反应,好象这两个按钮没有执行命令。请问是软件没做完还是我系统有问题?
本人用的是2005SERVER,VS2005,.NET FRAMEWORK2.0

  回复  引用    

#85楼  2007-05-05 13:32 koko [未注册用户]
很希望看到源代碼
  回复  引用    

#86楼  2007-06-02 16:58 一场误会      
我用的是Sql2000 ,能给个你这个框架的数据库吗?
huangwen5123@sohu.com
  回复  引用  查看    

#87楼  2007-06-02 18:59 -天道酬勤      
@attack,对不起,那个功能还没有开发完。
@一场误会 下载包里有数据库文件

  回复  引用  查看    

#88楼  2007-06-08 09:00 qing2000 [未注册用户]
李老师,你的创作非常棒,我作为一名程序员非常钦佩您的敬业精神和您的智慧!

在使用过程中,我有一些自己的想法,在此抛砖引玉,希望更多的同仁来参与开发、改进而不是简单的使用。

实际使用中“自动输出代码”使用最为平凡,大多数人喜欢用自动编号的主键,DAL中的Add使用GetMaxId得到最大编号再插入数据表,这中方式我个人觉得欠妥;极端情况得到最大编号的时候,别人正好插入一条记录,等我再插入时发生报错;
我建议,插入时还是不要涉及主键;如果主键不是自动编号,那就像单个页面采用可选方式;还有一些人喜欢用全球唯一号,不知该怎么做。

在ASPX中经常将GetList得到的内容绑定到数据控件,但是大型应用中采用了分页方法,我看到V2.0中预留这个方法。
分页的GetList方法我做过一个,而且使用不错,李老师可以看看能不能整合到软件中;

我觉得生成的ASPX页面过于简单,而且不是很实用。我思考了一下,直接在一个页面中完成增、删、改、查,用一个GridView和一个添加记录的Table完成。
用以下方式即可。
<panel>
<GridView>
添加记录
</panel>
<panel>
<table>
显示列表
</panel>
既然表都有了,直接将ASPX和ASPX.CS生成。将增、删、改、查功能都做好这样不是大大提高了效率,这个代码我可以来完成
以上只是我个人的一些想法,可能有不切实际之处请各位前辈指教。
qing2000@126.com

  回复  引用    

#89楼  2007-06-18 11:39 LUNA [未注册用户]
请教使用动软.Net代码自动生成器中遇到的一个问题,希望得到李老师的指点:
按照您的生成器,好像是选择某个表然后就生成了关于这个表的CRUD的方法,于是每个表一个cs文件放在bll层,我看到有一个返回dataset的GetLi­st方法我觉得好像适合,但是我查看了sqlserverDAL层的相关的GetList()方法是select * from tb ...,但是我的这个datalist显示的东西并不是只是简单一句select * from tb,它是一句涉及多个表的一个比较复杂的sql语句,
现在我的问题就是,我是要在BLL层写一个全新的方法来为我的这个datalist进行绑定吗?,这个方法放在哪呢,其实他涉及到多个表,放到哪个文件里比较合­适呢?由于我对简单工厂的理解一知半解,我不清楚添加了这个方法以后,在其他层要进行哪些相应的改动?
望回复,冒昧之处还望见谅
illbloodbest@msn.com

  回复  引用    

#90楼  2007-06-28 16:10 朱 [未注册用户]
李老师,我看了您的aspnet4.rar ,感觉可以学到很多东西,我们最近要开发几套 C#(WinForm) 的软件,不知道您的C#(WinForm)知识库哪里有下载的,很想跟您学习。。。。

盼回

zhuyunjun2007@163.com
  回复  引用    

#91楼  2007-07-06 10:53 flyingchen      
官方网站今天不能访问了:(
  回复  引用  查看    

#92楼  2007-07-16 09:39 一路前行      
谢谢李老师,辛苦了。
  回复  引用  查看    

#93楼  2007-08-16 22:06 wonder [未注册用户]
李老师:
在使用ACCESS数据库时,程序有BUG,不能识别ACCESS的主键。选择也选择不了主键。
  回复  引用    

#94楼  2007-08-22 17:43 dming [未注册用户]
用你的软件做过几个项目,
我想问一下一般的步骤
我每次做都是一个页面一个页面拷的。。hongdaoming@tom.com
  回复  引用    

#95楼  2007-08-24 10:27 新人 [未注册用户]
请问一个问题,在2.0中如果选择默认模板2的话 为什么生成不出构造的代码呢?

<xsl:for-each select="FIELDS/FIELD">
Public Const string FIELD_<xsl:value-of select="@Name" /> = "<xsl:value-of select="@Name" />";
</xsl:for-each>

这个是可以生成的但是

<xsl:for-each select="Query/Command">
Private Const String Command_<xsl:value-of select="@Name" /> = "<xsl:value-of select="@Name" />";
</xsl:for-each>
<xsl:for-each select="Insert/Command">
Private Const String Command_<xsl:value-of select="@Name" /> = "<xsl:value-of select="@Name" />";
</xsl:for-each>
<xsl:for-each select="Update/Command">
Private Const String Command_<xsl:value-of select="@Name" /> = "<xsl:value-of select="@Name" />";
</xsl:for-each>
<xsl:for-each select="Delete/Command">
Private Const String Command_<xsl:value-of select="@Name" /> = "<xsl:value-of select="@Name" />";
</xsl:for-each>

这些都不能生成.能不能给个答复?

或者有空的话发我的邮箱 elin0001@163.com
  回复  引用    

#96楼  2007-10-09 13:06 lxz0665 [未注册用户]
李老师:
我是初学者,你能不能把CodematicDemoS3程序的的相关说明文档提供一下?比如相关的类图等,我看此程序不知如何下手。
  回复  引用    

#97楼  2007-10