最近要忙期考,但还是决定每天抽点空来写CodeSmith的系列文章了,在此切实不敢用教程这个词语,毕竟本人对CodeSmith理解的也不是很多,有很多牛人都在博客园公布了不少对于CodeSmith的文章了,但我还是想发表一下本人的心得,心愿能给初学者更多的参考,教程中有谬误或者表述不清的中央欢送大家指出,我还是会秉承之前的格调,用尽量多的图来阐明步骤,因为我感觉还是图文并茂的文章比拟容易了解.

  好了,废话少说,开始咱们的CodeSmith旅程吧,我先讲讲这个系列教程要实现的指标吧,家喻户晓,CodeSmith其中一个弱小的性能就是按照模板生成批量代码,这也是吸引着泛滥编程人士应用它的起因,它大大的节约了编程工夫,省去了大量复制粘贴的废操作.

 &emsp &emsp首先,既然要解说如何应用CodeSmith和PowerDesigner疾速生成批量代码,当然要先装置这2个软件啦,上面就简略说说如何装置破解这2款软件吧,当然破解只是学习之用,请大家不要用于商业用途哈,要反对正版,大家都是做软件的,晓得开发一套软件实属不易啊.
CodeSmith装置办法:

1). 点击下载安装文件
2). 运行,装置步骤就不说了,抉择你要装置的目录,一路下一步就OK了.
3). 运行,抉择CodeSmith的装置目录,一路下一步,就破解
实现啦,接着你就能够在开始--CodeSmith Professional 5.1--CodeSmith Studio运行程序啦.

PowerDesigner装置办法:
http://dev.firnow.com/course/...

  装置完这2个软件了,接着就开始应用吧,还是和以前一样,先提出需要,再做实例,因为咱们之所以应用它们,必定是因为它们能奇妙的解决某种问题,不然咱们干嘛花那么多工夫和硬盘空间装置它们.

  好,咱们当初的需要是:心愿当接到一个新的工程项目时,程序员只须要依据我的项目需要,设计出数据库的构造(表,表的字段,表间关系),之后只有按一个按键,就能立即失去基于该数据库的所有分层架构代码文件.也就是说,咱们心愿能在不敲一行代码的状况下获取所有咱们想要的代码!而这就是这2个软件能做到的事件,也是咱们装置它们的目标.

  好了,角色曾经介绍完了,接着看看它们是如何演绎这场精彩的上演的吧:

  首先咱们须要创立一个测试数据库,为了简略,咱们在这个数据库中只创立一个Student表和一个Major表.其表构造和关系如下所示.

  看看怎么用PowerDesigner疾速的创立出这个数据库吧.

  1.当初开始应用PowerDesigner创立数据库,首先运行程序,进入主界面:

  2.File—New Model—Physical Data Model—Physical Diagram—Model name 设置为test,DBMS属性设置为Microsoft SQL Server 2005:

  3.首先用表格工具创立一个表格模板:

  4.双击表格模板,设置属性,咱们首先设置Major表:

  5.设置好表名,点击Columns标签,设置字段属性,设置如图所示:

  6.因为MajorID字段咱们要设置为主动增长,所以要设置它的高级属性,抉择MajorID字段,点击属性按钮,在General面板中勾选上Identity复选框:

  7.确定后咱们再创立一个Student表,字段设置如图所示:

  8.接着是为Student创立一个MajorID外键,应用PowerDesigner能够很轻松的实现这个工作,抉择关系设置工具,在Student表上按住左键不放,拖拽至Major表,便可为Student表增加一个MajorID的外键:

  9.哈哈,当初测试表曾经设置好了,接着设置一下咱们要生成的数据库吧,这些表都将被创立到该数据库中,咱们在设计面板空白处右键—Properties,在弹出的属性设置对话框设置如下:

  10好了,在此咱们对新数据库的设置曾经实现,然而在SQL中还是空洞无物啊,咱们要怎么把这边设计好的构造移植到SQLServer 2005中呢?执行操作:Database—Generate Database,设置好存储过程导出目录和文件名,点击确定即可:

  11.到你的导出目录,就能够看见导出的数据库创立存储过程了,关上SQL,执行一下,你就会看到数据库被神奇的创立好了:

  12.好了,数据库的筹备工作做好了,下一篇咱们就将应用该数据库联合CodeSmith主动批量生成代码啦~

上述实际中生成的源代码:
/*==============================================================*//* Database name: PD_test *//* DBMS name: Microsoft SQL Server 2005 *//* Created on: 2010/6/13 星期日 17:27:17 *//*==============================================================*/dropdatabase PD_testgo/*==============================================================*//* Database: PD_test *//*==============================================================*/createdatabase PD_testgouse PD_testgo/*==============================================================*//* Table: Major *//*==============================================================*/createtable Major ( MajorID intidentity, Name nvarchar(20) notnull, Remark nvarchar(Max) null, constraint PK_MAJOR primarykey (MajorID))go/*==============================================================*//* Table: Student *//*==============================================================*/createtable Student ( StudentID nvarchar(20) notnull, MajorID intnull, Name nvarchar(20) notnull, Sex bitnotnull, Age intnull, Remark nvarchar(Max) null, constraint PK_STUDENT primarykey (StudentID))goaltertable Student addconstraint FK_STUDENT_REFERENCE_MAJOR foreignkey (MajorID) references Major (MajorID)go

桑田月明珠有泪,蓝田日暖玉生烟。