Leven's Blog

五运之政 犹权衡也 高者抑之 下者举之 化者应之 变者复之
posts - 17, comments - 187, trackbacks - 16, articles - 0
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

实体类代码生成器3.0源码发布[新增类图]

Posted on 2008-06-09 18:45 Leven 阅读(3834) 评论(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:

依赖:

Tag标签: c#,实体类

Feedback

#1楼    回复  引用  查看    

2008-06-09 18:55 by Justin      

#2楼    回复  引用  查看    

2008-06-09 18:58 by BAsil      

#3楼    回复  引用  查看    

2008-06-09 19:58 by dada7357      
这个程序有个问题,要一个System.config的文件,又不会自己创建一个

#4楼 [楼主]   回复  引用  查看    

2008-06-09 20:27 by Leven      
@dada7357
的确如此,请下载已编译软件包:
http://www.codeplex.com/CodeFactory/Release/ProjectReleases.aspx?ReleaseId=14201
其中包含了需要的全部配置文件(不仅仅少System.Config)

#5楼    回复  引用  查看    

2008-06-09 20:53 by scotoma      
Language Manager Initial Error

Can't open language folder!

奇怪报这个错误

#6楼    回复  引用  查看    

2008-06-09 21:07 by dada7357      
请问LZ用SQLSERVER连接过吗?
if (this.history_list.SelectedItem == null)
this.isSelectConnectionChanged = true;
else
this.CheckConnectionChange();

这两句在VS2008中,是用线程来做界面的操作是会出错的。这在VS2003就不会有错,但在VS2005后,界面操作的API就不同啦。请LZ发表时,测试好了先。不只是升级了一下编译器这么简单就可以啦。在发布时,请问LZ连接成功了吗???

#7楼 [楼主]   回复  引用  查看    

2008-06-09 21:07 by Leven      
@scotoma
这是因为缺少相关的语言包。清下载二进制包,其中包含所有配置文件和语言包
http://www.codeplex.com/CodeFactory/Release/ProjectReleases.aspx?ReleaseId=14201

#8楼 [楼主]   回复  引用  查看    

2008-06-09 21:13 by Leven      
@dada7357
程序的线程操作的确是有很大的问题,开始设计的时候没有注意,后面想改又懒得弄了,就省了一些。
并以的代码是使用vs2005,上传到codeplex才改用vs2008.磁盘不够,懒得装vs2005的team client了。至于功能,我测试基本应用是没有问题的,比如生成代码之类的。
另:保存历史记录的功能问题大的很,应该重构的,只是没精力弄了,刚才用vs2008重新编译,测试程序执行以及功能都没有问题(我个人Win2003+VS2008 TS)

#9楼    回复  引用    

2008-06-09 21:43 by 不知道谁? [未注册用户]
debug都会出错,没啥意思

#10楼 [楼主]   回复  引用  查看    

2008-06-09 21:47 by Leven      
@不知道谁?
的确如此。要想看程序,下源码干嘛?直接下二进制程序就是了,源码自然没啥意思。

#11楼    回复  引用  查看    

2008-06-09 22:18 by yans      
不好意思...我是菜鸟来的...怎么我发觉我找不到这个类代码生成器,,它是怎么生成的呢?????/

#12楼 [楼主]   回复  引用  查看    

2008-06-09 22:26 by Leven      
@yans
这个恐怕我目前无法帮你,希望你能快快提高,早日看明白代码。如果有什么具体问题可以提,你这个怎么生成代码的问题未免太抽象,可以说整个程序都是为这个目的服务的,简单来说,生成代码无非就是获取数据库表数据,然后拼凑字符串而已。

#13楼    回复  引用  查看    

2008-06-09 22:32 by yans      
我是想问,怎么样用生成的那个软件来生成代码??

#14楼    回复  引用  查看    

2008-06-09 22:34 by yans      
我自己也做了点东西...算是数据库帮助软件吧...平时有用的...只是不知道上传到哪里可以给大家指教一下....
楼主有什么好介绍的吗?

#15楼 [楼主]   回复  引用  查看    

2008-06-09 22:35 by Leven      
@yans
执行程序,操作菜单,连接数据库,然后直接选择生成就可.
源码可以通过codeplex发布(需要安装team client)或者直接放在blog下载就可。

#16楼    回复  引用  查看    

2008-06-09 22:37 by yans      
你是好人~~~楼主

#17楼 [楼主]   回复  引用  查看    

2008-06-09 22:39 by Leven      
实在自愧不如。。

#18楼    回复  引用  查看    

2008-06-09 22:47 by yans      
http://www.cnblogs.com/yans/archive/2008/06/09/1216415.html

#19楼    回复  引用  查看    

2008-06-09 22:48 by yans      
楼主看一下...有什么地方要改进的??

#20楼 [楼主]   回复  引用  查看    

2008-06-09 23:17 by Leven      
目前我也用不上,谈不上意见。你需要什么就可以实现什么嘛

#21楼    回复  引用  查看    

2008-06-09 23:26 by chunfeng      
请问源码在那里下载,找不到,下载的都是些dll

#22楼    回复  引用    

2008-06-09 23:29 by 戴尔笔记本电脑 [未注册用户]
楼主真是好人,下载了你的代码,学习中...

#23楼    回复  引用  查看    

2008-06-09 23:46 by lemontree      
顶。学习。

#24楼    回复  引用  查看    

2008-06-10 00:00 by 簡簡單單..      
支持一下..

#25楼    回复  引用  查看    

2008-06-10 02:47 by 大门      
做的不错。

#26楼    回复  引用  查看    

2008-06-10 08:00 by BAsil      

#27楼    回复  引用    

2008-06-10 09:08 by 韩 [未注册用户]
很不错的

#28楼    回复  引用    

2008-06-10 09:36 by AAAA [未注册用户]
感觉生成.NET 实体用VsSingleFileGenerator更方便.

#29楼    回复  引用    

2008-06-10 11:38 by PeterLeePersonal [未注册用户]
呵呵. 这个程序没必要写得这么复杂.
基本原理就是映射数据库表的字段到类的属性, 生成的属性的类型用Int32, String等声明, 推荐用int, string. 另外, 像GetTableName之类, 也没有存在的必要, 可以在程序里增加一个设置, 为表名之类加前缀或者后缀.

我在2005年左右写过这种程序, 比楼主的要复杂得多, 它同时为实体类生成基本的单条数据库记录的增删改查(每种功能通过一个存储过程实现, 并可选择生成代码下载还是直接把存储过程添加到数据库中)的方法, 并自动生成代码压缩下载. 后来慢慢就不用了, 这种实体基本用不上. 而且现在也有了LINQ TO SQL (就是DLINQ, 目前不支持非SQL SERVER数据库), 如果用的是SQL SERVER数据库, DLINQ的速度和通俗易懂让我们节省了很多时间.

#30楼    回复  引用    

2008-06-10 11:40 by PeterLeePersonal [未注册用户]
--引用--------------------------------------------------
yans: 楼主看一下...有什么地方要改进的??
--------------------------------------------------------
可以把你的功能和楼主的实体类生成器集成.
另外, YANS的程序只能使用SQL SERVER验证, 我一般用WINDOWS身份验证, 为了测试你的程序, 还得创建一个新用户(SA一般不用的), 建立不必加这个限制.

#31楼 [楼主]   回复  引用  查看    

2008-06-10 11:43 by Leven      
@PeterLeePersonal
6.个人代码研讨型工程,不保证程序的实用性。

#32楼    回复  引用    

2008-06-10 11:46 by PeterLeePersonal [未注册用户]
另外, 做代码生成, 最好使用System.CodeDom.
这样生成的代码, 可以变换不同的语言, 也不必手动去缩进排版.

#33楼    回复  引用  查看    

2008-06-10 12:02 by yans      
@PeterLeePersonal

嗯嗯....受益好多....

#34楼    回复  引用    

2008-06-10 13:27 by 体彩 [未注册用户]
很是受益啊!学习了,转载了!!!打声招呼,嘿嘿,就不叫偷了!!!

#35楼    回复  引用  查看    

2008-06-10 14:01 by 德仔--脚踏实地 用心努力      
我很奇怪为什么大家不用codesmith呢

#36楼    回复  引用  查看    

2008-06-10 14:14 by 简单就好      
楼主 能不能把你那个VS2005版本发过来。我这里没有2008,看起来挺不舒服的。谢谢。onlykwy@qq.com

#37楼    回复  引用    

2008-06-10 15:42 by efreer [未注册用户]
我晕,请楼主测试好了,再发布吧,漏洞百出!!

#38楼 [楼主]   回复  引用  查看    

2008-06-10 16:39 by Leven      
@efreer
请认真读下我的说明,我从没说这是什么完美东西,你要这么认为我也没办法,那只能说是你自找烦恼。
@ 简单就好
我手上的工程已经升级到vs08,想要05的也没得找了,还是赶紧进化了,装个新版把。

#39楼    回复  引用  查看    

2008-06-10 17:10 by 简单就好      
@Leven
郁闷,VS2008 机器跑不起来,谢谢。

#40楼 [楼主]   回复  引用  查看    

2008-06-10 17:26 by Leven      
@简单就好
汗。。。我感觉两者对系统需求也差不多啊。应该没问题的。
发布代码的时候我直接把工程给升了,真是没法子了。
不过其实也就一个sln文件的问题
你可以试试用05建一个新解决方案,然后添加所有的project到这个解决方案。

#41楼    回复  引用    

2008-06-10 18:40 by yellowTiger [未注册用户]
codesmith

#42楼    回复  引用  查看    

2008-06-10 19:10 by 简单就好      
谢谢!我搞定了。转换过来了。我以为你用了LINQ或者VS2008其它的功能,文章我也没有看,我只看看代码就行了。文字我就没有兴趣了。哈哈。

#43楼 [楼主]   回复  引用  查看    

2008-06-10 19:13 by Leven      
@简单就好
实在恭喜,这些都是老代码了,肯定没用新特性。其实程序没啥亮点,能给人帮助就最好不过了。

#44楼    回复  引用  查看    

2008-06-11 08:32 by 紫色永恒      
神鱼见首不见尾

#45楼    回复  引用  查看    

2008-06-11 17:25 by yans      
http://www.cnblogs.com/wuhuacong/archive/2008/06/10/1216653.html

#46楼    回复  引用  查看    

2008-06-11 17:26 by yans      
这个工具我觉得挺不错。。。。不过好像要注册什么的。。。。
唉。。。心态。。。

#47楼 [楼主]   回复  引用  查看    

2008-06-11 17:34 by Leven      
@yans
一个是收费软件,一个是开源
一个拥有完整功能,一个仅有一个用途,还不保证实用
一个是别人可能花费大力气才搞出来赚钱的,一个是随意写写的
一个只能看到功能,一个重在看代码

#48楼    回复  引用  查看    

2008-06-12 14:25 by Tonyyang      
请看看http://www.maticsoft.com 功能超强且又免费!

#49楼    回复  引用    

2008-06-12 17:54 by mracle [未注册用户]
源码在那里,我咋没找到呢

#50楼    回复  引用    

2008-07-08 12:45 by 明振 [未注册用户]
多线程带来很多的问题。

至于2005版只需要将现在的下载版本sln文件头两行修改如下
Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005

就可以打开了。

#51楼    回复  引用  查看    

2008-08-30 19:22 by hoodlum1980      
可用性,易用性是非常重要的。

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-06-10 10:24 编辑过
Google站内搜索
找找看



China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:


相关搜索:
c# 实体类

相关链接:
 
CopyRight 2008, Leven's Blog xhtml | css
Leven的个人Blog