基于CodeSmith的三层架构代码模板

啊 用了一下午的时间终于完成了三层架构的代码模板,完全仿照PetShop代码编写的模板,应该还是比较规范的,基本的操作增删改都包括了,查询一向都很复杂,变化莫测,模板里只有通过ID获取对象和获取整个集合的模板.

 

本套模板是基于.NET Framework2.0写的,没有加入LINQ和自动属性等3.5以上版本的新特性.

先放下载地址再教使用方法.

CodeSmith5.2(支持VS2010)下载地址: http://u.115.com/file/f355827806

三层架构模板下载地址: http://u.115.com/file/f311f3ea46

 

使用方法:

1. 安装CodeSmith5.2,期间有两个关于VS2010和VS2008的选项,记得取消前面的勾选!否则盗版VS2010和VS2008将不能用了.

2.安装后将模板放到你能记得住的为止,或者放到CodeSmith的指定目录,一般实在我的文档\CodeSmith\Templates下.

3.双击模板即可打开CodeSmith Explorer,进行代码生成操作了.

 

首先我们先来生成Model层.点击TargetTable后面的...打开数据库连接,如果你没有添加数据库连接,这里可以像VS中添加数据库连接那样添加连接就行了,添加连接之后点击会出现下图.

图片图片

选择你要生成的类,这里生成的Model层,如果是外键将生成实体类对象,而不是ID.

点击Generate(生成)即可生成代码,生成代码后如下图所示.

图片

将代码复制到vs中即可.

 

下面来生成DAL层,同理,双击DAL层的模板.

这里需要说明的几点,如果你的英文水平不错,那不用看下面的解释.

TargetTable:数据库表(同Model层)

Class_Name:生成类的类名

DAL_Namespace:DAL层的命名空间

DBHelper_Classname:DBHelper类的类名

DBHelper_Namespace:DBHelper类的命名空间

Model_Namespace:Model层的命名空间

 

依次选上,点击生成即可.

BLL层类似DAL层,这里就不赘述了.

图片

CodeSmith 介绍

CodeSmith 是一种基于模板的代码生成工具,它使用类似于 ASP.NET 的语法来生成任意类型的代码或文本。与其他许多代码生成工具不同,CodeSmith 不要求您订阅特定的应用程序设计或体系结构。使用 CodeSmith,可以生成包括简单的强类型集合和完整应用程序在内的任何东西。

  当您生成应用程序时,您经常需要重复完成某些特定的任务,例如编写数据访问代码或者生成自定义集合。CodeSmith 在这些时候特别有用,因为您可以编写模板自动完成这些任务,从而不仅提高您的工作效率,而且能够自动完成那些最为乏味的任务。CodeSmith 附带了许多模板,包括对应于所有 .NET 集合类型的模板以及用于生成存储过程的模板,但该工具的真正威力在于能够创建自定义模板。为了使您能够入门,我将快速介绍一下如何生成自定义模板。

生成自定义模板

  CodeSmith 模板只是一些可以在任意文本编辑器中创建的文本文件。它们的唯一要求是用 .cst 文件扩展名来保存它们。我将要生成的示例模板将接受一个字符串,然后基于该字符串生成一个类。创建模板的第一步是添加模板头,它可声明模板的语言、目标语言以及简要模板说明:

<%@ CodeTemplate Language="C#"   
    TargetLanguage="C#"
    Description="Car Template" %>

 模板的下一部分是属性声明,在这里可声明将在模板每次运行时指定的属性。就该模板而言,我要使用的唯一属性只是一个字符串,因此属性声明如下所示:

<%@ Property Name="ClassName" Type="String" Category="Context"
     Description="Class Name" %>

  该属性声明将使 ClassName 属性出现在 CodeSmith 属性窗口中,以便可以在模板运行时指定它。下一步是实际生成模板主体,它非常类似于用 ASP.NET 进行编码。您可以在图 3 中查看该模板的主体。

  正如您所见,该模板接受字符串输入并使用该类名生成单独的类。在模板主体中,使用与 ASP.NET 中相同的起始和结束标记。在该模板中,我只是插入属性值,但您还可以在这些标记内部使用任意类型的 .NET 代码。在该模板完成之后,您就可以通过双击它或者从 CodeSmith 应用程序中打开它将其加载到 CodeSmith 中。图 4 显示了已经加载到 CodeSmith 中的该模板。

  您可以看到左侧的属性正是我在该模板中声明的属性。如果我输入“SingletonClass”作为类名,并单击 Generate 按钮,则将生成图 3 的底部显示的类。

  CodeSmith 使用起来相当容易,如果能够正确应用,则可以产生一些令人难以置信的结果。面向代码生成的应用程序中最常见的部分之一是数据访问层。CodeSmith 包括一个名为 SchemaExplorer 的特殊的程序集,可用来从表、存储过程或几乎任何其他 SQL Server? 对象生成模板。

  CodeSmith 由 Eric J. Smith 编写,并且可以在 http://www.ericjsmith.net/codesmith 下载。

        CodeSmith开发系列资料总结
CodeSmith基础系列: 

        1CodeSmith基础(一)

        2CodeSmith基础(二)

        3CodeSmith基础(三)

        4CodeSmith基础(四)

        5CodeSmith基础(五)

        6CodeSmith基础(六)

        7CodeSmith基础(七)

        8CodeSmith基础(八)

TerryleeCodeSmith实用技巧系列: 

        1CodeSmith实用技巧(一):使用StringCollection

        2CodeSmith实用技巧(二):使用FileNameEditor

        3CodeSmith实用技巧(三):使用FileDialogAttribute

        4CodeSmith实用技巧(四):使用扩展属性

        5CodeSmith实用技巧(五):利用继承生成可变化的代码

        6CodeSmith实用技巧(六):使用XML 属性

        7CodeSmith实用技巧(七):从父模版拷贝属性

        8CodeSmith实用技巧(八):生成的代码输出到文件中

        9CodeSmith实用技巧(九):重载Render方法来控制输出

        10CodeSmith实用技巧(十):通过编程执行模版

        11CodeSmith实用技巧(十一):添加设计器的支持

        12CodeSmith实用技巧(十二):自动执行SQL脚本

        13CodeSmith实用技巧(十三):使用CodeTemplateInfo对象 

        14CodeSmith实用技巧(十四):使用Progress对象 

        15CodeSmith实用技巧(十五):使用快捷键 

kid-li翻译CodeSmith API系列: 

        1CodeSmith的基础模版类

你可能感兴趣的:(code)