代码生成利器-NCodeGenerate 教程(4) CodeSmith模板转换
CodeSmith 是代码生成中应用最广的工具之一,具有丰富的模板资源和用户。很多朋友原来是用CodeSmith的,有很多现成的模板。NCodeGenerate提供了一个CodeSmith到NCodeGenerate 的模板转换工具。 让用户从CodeSmith转到NCodeGenerate更加方便一些。下面来介绍一下。
打开工具菜单-〉CodeSmith转换
在上面窗口中选择要转换的文件及输出的文件,点击转换就可以了。由于CodeSmith 和NCodeGenerate 模板中的一些概念不是能够完全对应,所以这种转换只有简单的结构和语法转换。还需要程序员自己进行调整才可以。
CodeSmith模板转换后NCodeGenerate 后的对应关系如下:
一. CodeTemplate 指令
例如:<%@ CodeTemplate Language="C#" Inherits="CsNHibernateHelper" Src="../Helpers/CsNHibernateHelper.cs" TargetLanguage="C#" Debug="False" Description="Generates a Business Object for NHibernate." %>
在NCodeGenerate 中没有对应的概念,转化为空的字符串。
二、Property
例如:<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Optional="False" Category="1a. Source Table" Description="The source table to generate from." %>
在NCodeGenerate 中转换为Model类的一个属性。
public NCodeGenerate.DBSchema.TableSchema SourceTable {get;set;}
三、Assembly
例如:<%@ Assembly Name="SchemaExplorer" %>
在NCodeGenerate 中对应的事引用程序集。只要转换为空串就可以了,NCodeGenerate会自动处理程序集的。
四、Import Namespace
例如:<%@ Import Namespace="SchemaExplorer" %>
在NCodeGenerate 中对应命名空间的引用,转化为以下代码
@using NCodeGenerate.DBSchema;
五、script
例如:
<script runat="template">
模板中的所有的Script 中的代码都被提取出来存储为和转换目标文件名相同但后缀名为cs的代码文件。
并在模板中加入 对应的引用 @AssemblyFile 引用指令。
六、模板的<% %> 和 <%= %> asp.net 语法的代码
全部转换成 以@ 开头的Razor 格式的代码。
模板转换的功能就讲到这里了。祝大家新年快乐。
附: NCodeGenerate 新增了 NCodeGenerate.DBSchema 的文档,在下面的文档连接中。
附上下载地址:
文档:文档
NCodeGenerate 系列文章: