代码生成利器-NCodeGenerate 教程(4) CodeSmith模板转换

来源:互联网 发布:qq群地址优化 编辑:程序博客网 时间:2024/05/21 03:18

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.zip

文档:文档

 

NCodeGenerate 系列文章:

一、代码生成利器-NCodeGenerate 是什么?
二、代码生成利器-NCodeGenerate 教程(1) 遍历数据库内的所有表
三、代码生成利器-NCodeGenerate 教程(2) NCodeGenerate的代码公用之一
四、代码生成利器-NCodeGenerate 教程(3) 生成代码到文件.
五、 代码生成利器-NCodeGenerate 教程(4) CodeSmith模板转换
六、代码生成利器-NCodeGenerate 教程(5) 多种数据库的支持

七、代码生成利器-NCodeGenerate 教程(6) 调试功能 Trace 输出
八、代码生成利器-NCodeGenerate 教程(7) 揭开调试功能 的神秘面纱
九、代码生成利器-NCodeGenerate 教程(8) 揭开Razor模板引擎的神秘面纱
十、代码生成利器-NCodeGenerate 教程(9) 数据类型映射Map功能


原创粉丝点击