Posted on 2008-06-09 18:45
Leven 阅读(4414)
评论(51) 编辑 收藏 网摘 所属分类:
C# Basic
本程序拥有以下新特征:
1.完全可扩充生成引擎系统,使用.Net高级特征实现该功能,针对不同数据库,只要开发相应的生成模块,程序就可在不经过任何修改的情况下支持该数据库.扩充型良好
2.可定制生成脚本,对代码的命名方式通过C#脚本定制,任何人可以使用C#语法进行修改,使得生成的代码命名符合您的要求而无需再次进行修改.
3.国际化支持,通过.net高级功能实现,可支持所有语言,只需开发相应语言包
4.针对"实体类代码生成器",对界面进行修改,不过本人不大擅长UI设计,估计这也比原来好不了多少
5.历史记录功能,可以自动保存生成记录,供下次继续使用
6.分层次代码设计,更好的扩充性,维护性
源代码发布:http://www.codeplex.com/CodeFactory
LevenBlog发布:http://blog.leven.com.cn/Article_30.aspx
特别说明:
1.代码并非完美,时间精力有限,不再做大的修改。
2.代码包中包含Access,SqlServer和MySql生成模块。
3.程序使用VS2005发布时使用VS2008升级工程再发布,即程序没使用任何c#3.0新特性(我机器只装了08的VSTS客户端)。
4.源代码采用GPLv2协议发布,如果您有什么意见或者建议,请联系本人email或者在项目页面留言,由于精力原因,不保证回复。
5.如果对代码有不认同,欢迎讨论,但是请勿谩骂诋毁或者无理嘲笑。
6.个人代码研讨型工程,不保证程序的实用性。
7.如果您不认可以上,请绕道。
[20080610补充]
1.更新源码包,将昨天发布版本中缺少的配置文件加入源码包。
2.将昨天发布版本中缺少的脚本文件,编译所需的png图形文件加入源码包。
3.修改编译命令,使得下载源码包之后可以直接通过vs编译运行调试,无需再下载二进制包中的配置文件。
程序执行截图:

为方便有兴趣研究本项目的朋友更快了解项目结构,新增工程主要构件的类图:
数据操作部分:
DbHelper:

DataAdapeter:

Provider:

依赖:

Feedback
http://www.cnblogs.com/Emoticons/tusiji/203330988.gif" alt="" />
这个程序有个问题,要一个System.config的文件,又不会自己创建一个
Language Manager Initial Error
Can't open language folder!
奇怪报这个错误
请问LZ用SQLSERVER连接过吗?
if (this.history_list.SelectedItem == null)
this.isSelectConnectionChanged = true;
else
this.CheckConnectionChange();
这两句在VS2008中,是用线程来做界面的操作是会出错的。这在VS2003就不会有错,但在VS2005后,界面操作的API就不同啦。请LZ发表时,测试好了先。不只是升级了一下编译器这么简单就可以啦。在发布时,请问LZ连接成功了吗???
@dada7357
程序的线程操作的确是有很大的问题,开始设计的时候没有注意,后面想改又懒得弄了,就省了一些。
并以的代码是使用vs2005,上传到codeplex才改用vs2008.磁盘不够,懒得装vs2005的team client了。至于功能,我测试基本应用是没有问题的,比如生成代码之类的。
另:保存历史记录的功能问题大的很,应该重构的,只是没精力弄了,刚才用vs2008重新编译,测试程序执行以及功能都没有问题(我个人Win2003+VS2008 TS)
@不知道谁?
的确如此。要想看程序,下源码干嘛?直接下二进制程序就是了,源码自然没啥意思。
不好意思...我是菜鸟来的...怎么我发觉我找不到这个类代码生成器,,它是怎么生成的呢?????/
@yans
这个恐怕我目前无法帮你,希望你能快快提高,早日看明白代码。如果有什么具体问题可以提,你这个怎么生成代码的问题未免太抽象,可以说整个程序都是为这个目的服务的,简单来说,生成代码无非就是获取数据库表数据,然后拼凑字符串而已。
我自己也做了点东西...算是数据库帮助软件吧...平时有用的...只是不知道上传到哪里可以给大家指教一下....
楼主有什么好介绍的吗?
@yans
执行程序,操作菜单,连接数据库,然后直接选择生成就可.
源码可以通过codeplex发布(需要安装team client)或者直接放在blog下载就可。
目前我也用不上,谈不上意见。你需要什么就可以实现什么嘛
感觉生成.NET 实体用VsSingleFileGenerator更方便.
呵呵. 这个程序没必要写得这么复杂.
基本原理就是映射数据库表的字段到类的属性, 生成的属性的类型用Int32, String等声明, 推荐用int, string. 另外, 像GetTableName之类, 也没有存在的必要, 可以在程序里增加一个设置, 为表名之类加前缀或者后缀.
我在2005年左右写过这种程序, 比楼主的要复杂得多, 它同时为实体类生成基本的单条数据库记录的增删改查(每种功能通过一个存储过程实现, 并可选择生成代码下载还是直接把存储过程添加到数据库中)的方法, 并自动生成代码压缩下载. 后来慢慢就不用了, 这种实体基本用不上. 而且现在也有了LINQ TO SQL (就是DLINQ, 目前不支持非SQL SERVER数据库), 如果用的是SQL SERVER数据库, DLINQ的速度和通俗易懂让我们节省了很多时间.
--引用--------------------------------------------------
yans: 楼主看一下...有什么地方要改进的??
--------------------------------------------------------
可以把你的功能和楼主的实体类生成器集成.
另外, YANS的程序只能使用SQL SERVER验证, 我一般用WINDOWS身份验证, 为了测试你的程序, 还得创建一个新用户(SA一般不用的), 建立不必加这个限制.
@PeterLeePersonal
6.个人代码研讨型工程,不保证程序的实用性。
另外, 做代码生成, 最好使用System.CodeDom.
这样生成的代码, 可以变换不同的语言, 也不必手动去缩进排版.
@PeterLeePersonal
嗯嗯....受益好多....
很是受益啊!学习了,转载了!!!打声招呼,嘿嘿,就不叫偷了!!!
楼主 能不能把你那个VS2005版本发过来。我这里没有2008,看起来挺不舒服的。谢谢。onlykwy@qq.com
@efreer
请认真读下我的说明,我从没说这是什么完美东西,你要这么认为我也没办法,那只能说是你自找烦恼。
@ 简单就好
我手上的工程已经升级到vs08,想要05的也没得找了,还是赶紧进化了,装个新版把。
@Leven
郁闷,VS2008 机器跑不起来,谢谢。
@简单就好
汗。。。我感觉两者对系统需求也差不多啊。应该没问题的。
发布代码的时候我直接把工程给升了,真是没法子了。
不过其实也就一个sln文件的问题
你可以试试用05建一个新解决方案,然后添加所有的project到这个解决方案。
谢谢!我搞定了。转换过来了。我以为你用了LINQ或者VS2008其它的功能,文章我也没有看,我只看看代码就行了。文字我就没有兴趣了。哈哈。
@简单就好
实在恭喜,这些都是老代码了,肯定没用新特性。其实程序没啥亮点,能给人帮助就最好不过了。
这个工具我觉得挺不错。。。。不过好像要注册什么的。。。。
唉。。。心态。。。
@yans
一个是收费软件,一个是开源
一个拥有完整功能,一个仅有一个用途,还不保证实用
一个是别人可能花费大力气才搞出来赚钱的,一个是随意写写的
一个只能看到功能,一个重在看代码
多线程带来很多的问题。
至于2005版只需要将现在的下载版本sln文件头两行修改如下
Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
就可以打开了。