
CodeSmith教程
文章平均质量分 71
介绍通过CodeSmith工具实现代码的自动生成
引路蜂
这个作者很懒,什么都没留下…
展开
-
CodeSmith 使用教程: 总结
前面基本介绍了CodeSmith的基本用法和编写代码模板的基本方法,这只是CodeSmith功能的一部分,其它部分可以参考CodeSmith文档和类文件定义。此外可以参考CodeSmith附带的示例模板。为便于查询,列出所有文档如下:CodeSmith 使用教程(1): 概述CodeSmith 使用教程(2): 编写第一个代码模板CodeSmith 使用教程(3): 自动生成Yii Framewo原创 2013-02-07 08:59:52 · 4732 阅读 · 2 评论 -
CodeSmith 使用教程(17) Merge策略
前面介绍了CodeSmith使用的基本用法,通过代码模板来生成代码,但如果你修改了自动生成的代码,再次使用代码模板生成代码后,你修改的代码也就丢失了,CodeSmith 支持多种“合并(Merge)”来解决这个问题,以保留你自己修该过的部分。CodeSmith支持如下三种“合并策略”:InsertRegion Merge 策略PreserveRegions Merge策略InsertClass M原创 2013-02-07 08:58:48 · 2234 阅读 · 0 评论 -
CodeSmith 使用教程(16) 使用XMLProperty
在前面CodeSmith 使用教程(6): 基本语法-声明和使用属性 介绍了CodeSmith中使用属性的基本方法,模板中的属性是通过Property指令来定义。CodeSmith 也支持使用XML文档来定义属性,可以把一些配置属性定义到XML文件中,定义XML的属性是使用XmlProperty来定义:<%@ XmlProperty Name="PurchaseOrder" Schema="原创 2013-02-05 09:55:30 · 2042 阅读 · 2 评论 -
CodeSmith 使用教程(15) 为Yii Framework 创建生成ActiveRecord的代码模板
在CodeSmith 使用教程(3): 自动生成Yii Framework ActiveRecord 我们通过SchemaExploer为Yii Framework从数据库生成简单的ActiveRecord类,没有考虑到表和表之间的关系。本例我们使用CodeSmith为Yii Framework创建一个通用的代码模板,可以使用上例介绍的SchemaExploer ,不过在查看CodeSmith自带原创 2013-02-03 11:51:09 · 2549 阅读 · 2 评论 -
CodeSmith 使用教程(14) 使用SchemaExplorer来获取数据库定义
在前面例子CodeSmith 使用教程(3): 自动生成Yii Framework ActiveRecord 我们使用了SchemaExplorer 来获取数据的MetaData(数据库Schema 定义)来自动生成Yii Framework的数据库表对应的ActiveRecord定义,本篇较详细的介绍一下的SchemaExplorer的用法,下一篇通过实例除了自动生成自动生成Yii Framew原创 2013-02-01 08:34:49 · 7178 阅读 · 1 评论 -
CodeSmith 使用教程(13) 调试
编写CodeSmith模板和编写程序一样,也需要进行调试,CodeSmith支持使用CLR’s Just-in-Time debugger调试模板。要调试模板,首先要在CodeTemplate声明中打开调试Debug=”True”:第二步是设置断点:在需要设置断点的地方调用System.Diagnostics.Debugger.Break();System.Diagnostics.Debugge原创 2013-01-23 06:59:17 · 3883 阅读 · 0 评论 -
CodeSmith 使用教程(12) 使用主从代码模板
在前面的教程CodeSmith 使用教程(3): 自动生成Yii Framework ActiveRecord 我们使用了主,从模板来实现了从数据库为Yii Framework生成多个表的ActiveRecord类定义,中CodeSmith项目中通过主模板和从模板的配合可以实现复杂的代码生成过程,主模板和从模板的关系有点类似主程序和子函数的关系。使用主-从模板的基本步骤如下:定义从模板,从模板可以原创 2013-01-18 08:30:07 · 2417 阅读 · 0 评论 -
CodeSmith 使用教程(11) 引用其它文件或.Net 类库
在CodeSmith模板中可以引用.Net 类库,和普通的.Net 项目不同的是,对.Net 库的引用不是通过项目的Add reference 来实现,而是通过在代码模板中指明所要引用的Assembly.比如引用CodeSmith自带的CodeSmith.CustomProperties.dll ,可以使用如下语句:Name指明所有需要引用的Assembly的名称,也可以使用Assembly的全原创 2013-01-17 08:50:25 · 2839 阅读 · 0 评论 -
CodeSmith 使用教程(10): CodeTemplateInfo 对象
通过CodeTemplateInfo对象可以获取代码模板文件本身的一些信息,比如文件名,源语言,编码方法,其支持的属性有:属性名描述CodeBehind该模板的Code-behind的文件名或者模板不使用CodeBehind时为空字符串.ContentHashCode返回代码模板的一个Hash值.DateCreated返回模板创建的时间.DateModified返回模板修改的时间Descripti原创 2013-01-16 08:26:09 · 1748 阅读 · 0 评论 -
CodeSmith 使用教程(9): Progress对象
使用Progress对象可以为CodeSmith生成代码的过程显示一个进度条,这对于生成比较费时的模板操作是非常有用的,如果你使用Visual Studio,可以在状态栏中显示一进度条:使用进度条的方法是通过CodeTemplate对象的Progress属性对象,首先是设置Progress对象的最大值和步长,本例通过一个简单的循环来模拟一个费时的操作:This is a progress d原创 2013-01-15 08:17:56 · 1942 阅读 · 0 评论 -
CodeSmith 使用教程(8): CodeTemplate对象
在使用代码模板产生代码时,CodeSmith引擎背后使用了不少对象来帮助代码的生成,其中常用的有CodeTempate (类似于Asp.Net的Page类)Progress 用于显示代码生成的进度CodeTemplateInfo 可以返回关于当前模板自身的一些信息。本篇介绍CodeTemplate ,CodeTemplate代表了由CodeSmith引擎处理的代码模板对象,可以通过CodeTemp原创 2013-01-14 10:25:39 · 6789 阅读 · 2 评论 -
CodeSmith 使用教程(7): 基本语法-转义Asp.Net标记
由于CodeSmith的代码模板使用了和Asp.Net类似的语法,因此如果要使用CodeSmith 模板生成Asp.Net脚本时比如“具体方法是使用 比如我们要生成如下的Asp.Net代码: Product ID: 可以在原创 2013-01-13 11:41:39 · 2171 阅读 · 0 评论 -
CodeSmith 使用教程(6): 基本语法-声明和使用属性
CodeSmith的核心是模板,而使模板具有活力的就是属性,通过定义属性从而使代码模板能够根据配置生成所需的代码。在使用代码模板时首先也必须给模板定义的属性定义值才能使用CodeSmith通过模板产生代码。有些属性具有缺省值,这些属性可以不需要配置。模板中的属性通过Property指令来定义:属性参数的介绍:Name:模版使用的参数的名称。Type:参数类型可以是任何.NET有效的数据类型,例如原创 2013-01-11 08:26:00 · 2799 阅读 · 0 评论 -
CodeSmith 使用教程(5): 基本语法-使用注释
在模板中可以添加注释,注释通过 块来定义,注释可以有多行。比如:<%--Name: TestHarness.cstDescription: Generates a standard test harness for an object--%>如果在代码模板中使用C#,VB.Net或是JavaScripts脚本,可以使用所使用语言对应的注释,比如C#语言可以使用 // 或 /* commen原创 2013-01-08 08:25:47 · 2368 阅读 · 0 评论 -
CodeSmith 使用教程(4): 基本语法-CodeTemplate 指令
前面的几篇介绍了使用CodeSmith模板自动生成代码和编写代码模板的基本知识。也说过CodeSmith最核心的部分是代码模板,从本篇开始介绍CodeSmith代码模板的基本语法,对于Asp.Net程序员来说,可以说是碰到老朋友了:-) ,CodeSmith 的代码模板和Asp.Net Page 几乎如出一辙。本篇介绍CodeTemplate指令,这个是模板中唯一必须的声明,包含一些模板特殊的属性原创 2013-01-07 08:24:28 · 2223 阅读 · 0 评论 -
CodeSmith 使用教程(3): 自动生成Yii Framework ActiveRecord
上例介绍了使用CodeSmith编写代码模板的基本方法,本例实现一个较为实用的代码模板,通过数据库自动为Yii Framework生成所需要的ActiveRecord 类。本例通过修改Yii Framework 开发教程(26) 数据库-Active Record示例 ,原例是手工编写Employee.php ActiveRecord。首先为工程添加一个C#项目(任意类型,我们只是利用这个项目来包原创 2013-01-06 13:15:42 · 2252 阅读 · 0 评论 -
CodeSmith 使用教程(2): 编写第一个代码模板
在CodeSmith 使用教程(1): 概述我们通过使用CodeSmith从数据库自动生成NHiberate代码,可以了解到使用CodeSmith自动生成代码的基本步骤:选择使用合适的模板,CodeSmith随开发包自带了大量常用的模板,如果找不到合适的模板,CodeSmith支持自定义模板。为模板选择合适的参数设置。自动生成代码(可以为任意类型的代码,C#,Java, .XML 文本等)其核心为原创 2013-01-06 10:45:31 · 3710 阅读 · 1 评论 -
CodeSmith 使用教程(1): 概述
前面正在介绍hibernate的开发教程,提到hibernate 在.Net 平台上相应的ORM工具为NHibernate ,使用NHibernate 就不能不提到CodeSmith。CodeSmith 是一种基于模板的代码生成工具,它使用类似于 ASP.NET 的语法来生成任意类型的代码或文本。与其他许多代码生成工具不同,CodeSmith 不要求您订阅特定的应用程序设计或体系结构。使用原创 2012-10-24 09:52:01 · 11548 阅读 · 7 评论