欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » ASP.Net » 正文

热门阅读

利用add-in扩展性将代码生成器集成到VS环境中(一)-操作界面和功能

创建时间:2012年12月20日 10:36  阅读次数:(8341)
分享到:
根据数据库自动生成三层结构代码的软件网上有很多,比如动软等。但这些软件都没有和vs环境集成在一起,而且也不能根据具体的项目情况生成一些特殊的代码,只是一些通用的增删改等,当然,在我们这个Add-In的示例中,自动生成的也是这些通用的增删改等,但只需修改生成代码,它就可以生成任何我们想要的代码,而不管这些代码有多么的特殊,因为它是我们自己开发的嘛 :),而且它是集成到vs的菜单中的,自动创建文件,非常的方便实用。

Add-In是什么:
Add-In是扩展vs集成环境的一种比较专业的方式,可以操作解决方案、项目、文件、编辑器,也可以操作vs中的各个工具窗口等。利用Add-In,我们可以为vs环境添加新的功能。

说明:该示例是本人厌倦了重复的创建,复制,修改三层结构中那些看起来差不多的代码后写的小插件。写的比较匆忙,也没有经过正儿八经的测试,所以存在bug也是正常,大家可以根据该示例的思路开发更加健壮的插件。

示例的操作界面和功能
在具体的讲解之前,先看看示例的操作界面和功能介绍,带着目的再来看示例代码,可能会更加容易理解。
操作界面
 
参数说明:
1、数据库连接字符串:这里填写要连接数据库的连接字符串,因为都是开发人员用的,这里就直接填写好了,不用做成填写用户名密码那样专业了。
2、表名:填写要生成三层结构代码的表。
3、视图名:填写要生成三层结构代码表对应的视图名。
这里为什么要将表名与视图名分开呢?是因为在生成新增与修改代码时,只需要对表的字段进行操作。但生成GetModel方法时,就可能需要对视图中的另外一些字段进行赋值。比如,某表中有”创建人编号”字段,但没有”创建人姓名”的字段,这个字段可能存储在登陆人的表中,这样,将表名与视图名分开就好解决了。 当视图名栏为空时,那么视图名将取表名的值。
4、表的字段列表:这里显示了表的字段信息,计算列与自增列是不需要生成新增与修改的代码的,所以这里将这两项信息也显示出来了。
5、主键:表的主键字段。只有表具有主键时,才能自动生成代码。
6、需过滤的字段:在生成新增与修改代码时,将跳过这里定义的字段。这个有什么作用呢?比如某表有”创建时间”字段,但这个字段是利用默认值getdate()进行赋值的,那么在新增与修改时就不需要对”创建时间”这个字段进行操作了。
7、Model层项目名:一般情况下,我们会为Model,BLL,DAL三层各自创建独立的项目。那么这个就Model层的项目名。
8、BLL层项目名:BLL层对应的项目名称。
9、DAL层项目名:DAL层对应的项目名称。
10、命名空间:解决方案的顶级命名空间。
11、目标文件夹:生成的文件将存储在这里定义的文件夹下面。这里只支持一级文件夹。我们认为三个项目中都会存在相同的文件夹。
有了这几项信息后,新生成代码的命名空间格式为:命名空间. 项目名. 目标文件夹
12、生成日志的输出窗口。

使用方法:
如果你有下载到了这个示例的源码,那么你可以用vs2008打开,然后生成解决方案,那么你的vs就会自动安装好这个插件了。如果没有自动安装好的话,你也可以将项目中CreateCode.AddIn文件与Project1.dll文件拷贝到C:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Addins目录下面,然后重启vs2008就好了。如果你的文档中没有Addins文件夹,那么就需要自己创建一个。因为这个示例我是使用vs2008做的,所以如果你是使用其它版本,对应的目录也会有所不同。安装好后,我们会在VS的工具菜单下面发现一个小笑脸了,如下图:
操作界面

源码我会在这个教程更新完毕后发布到本站供大家下载,谢谢大家的支持。
源码下载:集成到VS工具栏的代码生成器下载)
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论3条
  • #1楼  评论人:匿名  评论时间:2012-12-20 14:21:47
  • 很实用的插件,期待lz更新。
  • #2楼  评论人:路人甲  评论时间:2013-5-22 10:52:24
  • 提示:该表缺少主键,创建失败!
    这是什么问题呢?
  • #3楼  评论人:Wyf  评论时间:2013-5-25 23:18:40
  • 说明你这个表没有设置主键呢。
发表评论:
留言人:
内  容:
请输入问题 7+80=? 的结果(结果是:87)
结  果: