• CodeSmith和PowerDesigner的安装和数据库创建二


    要想知道CodeSmith到底有多强大那么我告诉你最好的方法就是去试试,尽管CodeSmith有很多高级甚至复杂的功能,但你不用掌握这所有的功能就能很好的用它来帮你生成代码

             在这一章,你将学习到如何使用CodeSmith生成一段有用的代码-强类型的hash表类,跟着我,保证你不到五分钟就能完成,并且你能领略到CodeSmith Explorer和CodeSmith Studio生成模版代码的强大功能。

    2.启动CodeSmith Explorer



             第一步要做的就是启动CodeSmith Explorer,就像Windows Explorer 组织存储在你计算机上的文件夹的功能类似,CodeSmith Explorer的主要功能是是组织模版文件,通过select Start > Programs > CodeSmith 3.0 > CodeSmith Explorer启动你的CodeSmith Explorer,在CodeSmith Explorer的初始界面包括了一些示例模版。

    CodeSmith3.2(.net2.0)教程之一:CodeSmith介绍及指南 - zxianf - apple的博客

    3.打开一个模板



           模板示生成代码的样式,CodeSmith提供一些很有用的基础模板,你也可以从CodeSmith support site
    下载到更多的模板,你也可以用CodeSmith开发你自己的模板。

            首先,点击根目录文件夹的加号

    CodeSmith3.2(.net2.0)教程之一:CodeSmith介绍及指南 - zxianf - apple的博客

           以cst为扩展名的文件就是CodeSmith模板,你可能已经从这些模板的名字猜出了它们的大致用途了吧。例如CSHashTable.cst 模板用于生成c#hash表类,双击这个模板(或者鼠标右键选择执行)打开它。

    CodeSmith3.2(.net2.0)教程之一:CodeSmith介绍及指南 - zxianf - apple的博客

    4.设置属性



           一个代码生成器如果每次都生成相同的代码那么根本就没用,当然如果你仅仅把它当成一个代码存储器那么就另当别论了。CodeSmith可以自定义属性来让你生成自定义代码。当你用CodeSmith Explorer打开一个模板文件,模板属性页会显示出模板所需要的属性。在CodeSmith生成代码之前你必须填写这些参数的值。CSHashTable模板需要四个字符串类型的属性(ClassName, ClassNamespace, ItemType, and KeyType)以及一个枚举类型的属性(Accessibility).。你可以为字符串类型的属性输入你想输入的任意值,而枚举型属性你只能通过下拉菜单来选取相应的值。作为第一次尝试,我们输入以下一些值:

    CodeSmith3.2(.net2.0)教程之一:CodeSmith介绍及指南 - zxianf - apple的博客

    CodeSmith最大的优点就在于能定义不同类型的元数据属性。例如,你可以创建一个数据库表单属性,让使用者在数据库中选取表并生成代码。CodeSmith创建数据库表属性的特点我们将在以后的章节讲解。


    我们回顾一下上一节的内容:我们利用CodeSmith Explorer了解了模板文件的基本构成。
    下面我们就利用CodeSmith模板来生成一个代码:


    1.生成代码


          当你按照前一节的步骤来做,那么现在你已经为生成我们的第一个模板代码做好了一切准备了。接下来你就可以按下模板属性页下面的生成按钮,CodeSmith会提取你输入的属性并把他们融合到生成的代码里面。接下来你可以使用Ctrl+C轻松的复制生成的代码了。

    CodeSmith3.2(.net2.0)教程之一:CodeSmith介绍及指南 - zxianf - apple的博客

    如图所示,代码窗口中包含了320行hash表类代码,植入了IDictionary, ICollection, IEnumerable, and ICloneable接口。如果你是有经验的开发者的话,那么你肯定知道如果这些模板都是既定不变的写死了的话,那肯定是最让人头痛的事情。而CodeSmith 之所以是最理想的工具就在于你可以生成你自己的模板,这就确保了以后使用模板足够的灵活性。一切都是那么符合一个程序员的心意。


    2.了解模板结构



           接着让我们来看看CSHashTable.cst 模板代码。如图所示,模板包含了CodeSmith 用于生成代码的结构。回到CodeSmith Explorer,在模板上点击鼠标右键选择编辑。将启动CodeSmith Studio打开模板进行编辑。

    CodeSmith3.2(.net2.0)教程之一:CodeSmith介绍及指南 - zxianf - apple的博客

          在接下来的章节你将了解到更多关于的细节。而现在,你仅仅对CodeSmith有了一点泛泛的了解,其次,你是不是已经发现CodeSmith模板语言和ASP.NET非常相似?以一些定义符作为开始,包含一些属性的声明。这些属性将在后面的代码中使用到。例如在模板中有这样一行:

    namespace <%= ClassNamespace %>

    在类命名空间“namespace”后面紧跟属性名称。

    如果你不喜欢CSHashTable模板,你完全可以按照你的想法修改它。例如,你可以加一些对接口的注释。记得做好改变以后点击保存。

    3.回顾



    以下一些步骤是你使用CodeSmith生成模板所必须做的:
    (1)启动CodeSmith Explorer
    (2)选择模板
    (3)输入属性值
    (4)生成代码

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

    好了,废话少说,开始我们的CodeSmith旅程吧,我先讲讲这个系列教程要完成的目标吧,众所周知,CodeSmith其中一个强大的功能就是依照模板生成批量代码,这也是吸引着众多编程人士使用它的原因,它大大的节约了编程时间,省去了大量复制粘贴的废操作.

    首先,既然要讲解如何使用CodeSmith和PowerDesigner快速生成批量代码,当然要先安装这2个软件啦,下面就简单说说如何安装破解这2款软件吧,当然破解只是学习之用,请大家不要用于商业用途哈,要支持正版,大家都是做软件的,知道开发一套软件实属不易啊.

    CodeSmith安装方法:

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


    PowerDesigner安装方法:
     http://dev.firnow.com/course/3_program/java/javajs/20090908/174375.html

    安装完这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自动批量生成代码啦~

    上述实践中生成的源代码:

    SQL.sql
    /*==============================================================*/
    /* Database name: PD_test */
    /* DBMS name: Microsoft SQL Server 2005 */
    /* Created on: 2010/6/13 星期日 17:27:17 */
    /*==============================================================*/


    drop database PD_test
    go

    /*==============================================================*/
    /* Database: PD_test */
    /*==============================================================*/
    create database PD_test
    go

    use PD_test
    go

    /*==============================================================*/
    /* Table: Major */
    /*==============================================================*/
    create table Major (
    MajorID
    int identity,
    Name
    nvarchar(20) not null,
    Remark
    nvarchar(Max) null,
    constraint PK_MAJOR primary key (MajorID)
    )
    go

    /*==============================================================*/
    /* Table: Student */
    /*==============================================================*/
    create table Student (
    StudentID
    nvarchar(20) not null,
    MajorID
    int null,
    Name
    nvarchar(20) not null,
    Sex
    bit not null,
    Age
    int null,
    Remark
    nvarchar(Max) null,
    constraint PK_STUDENT primary key (StudentID)
    )
    go

    alter table Student
    add constraint FK_STUDENT_REFERENCE_MAJOR foreign key (MajorID)
    references Major (MajorID)
    go
  • 相关阅读:
    LOGO在线制作网站
    ueditor和thinkphp框架整合修改版
    WAMP允许外部访问的修改方法
    javascript复习笔记
    ajax技术整理总结(1)
    图解——表和表之间的三种关系
    搭建自己的PHP框架心得——转载
    PHP 5 MySQLi 函数总结
    phpmywind调用方法大全
    phpmywind目录结构
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/1887516.html
Copyright © 2020-2023  润新知