代码生成器 CodeSmith 的使用(一)


由于在项目中经常要会用到数据库的 CRUD 操作(增、删、改、查),而且还使用的是orm 框架将数据库表名和表中的的字段映射成相应的类属性。如果把大量的时间用到手工输入数据库表中的字段,除了能练习打字速度外,对软件工程师来说,对编程能力的提高似乎没有什么意义,为了提高开发效率,节省时间,我工作之余花了大量的时间来学习研究CodeSmith 在生成数据库表中字段的模板的设计,在此记下自己的 CodeSmith 学习笔记。

  这是新建的一个 CsharpTemplate.cst 模板文件的内容

<%-- 
Name:
Author: 
Description: 
--%>
<%@ Template Language="C#" TargetLanguage="Text" %>
<%@ Property Name="SampleStringProperty" Default="SomeValue" Type="System.String" %>
<%@ Property Name="SampleBooleanProperty" Default="True" Type="System.Boolean" %>
My static content here.
My dynamic content here: "<%= SampleStringProperty %>"
Call a script method: <%= SampleMethod() %>
<% if (SampleBooleanProperty) { %>
My conditional content here.
<% } %>
<script runat="template">
// My methods here.
public string SampleMethod()
{
  return "Method output.";
}
</script>

  开头的是注释, 表示文件的作者,名称和功能描述

  接下来   <%@ Template Language="C#" TargetLanguage="Text" %> 就是模板的说明内容

 <%@ Property Name="SampleStringProperty" Default="SomeValue" Type="System.String" %>
 这是属性类型的设置 它会生成一个 System.String 类型的字段  默认的值被设置成 SomeValue  Name是属性模板的名称,这个可以自命名, 模板的东西通常会放在 <% %> 里面,是成对出现的。比如要输出 System.String 类型的值,就要这么写
 My dynamic content here: "<%= SampleStringProperty %>", 注意在<%> 前有个=号, 前面的 ”My dynamic content here“ 完全可以根据实际的需要来修改

 在 模板中写代码片段时,也是放在 <%> 中的, 像例子中的这个 <% if (SampleBooleanProperty) { %>
My conditional content here.
<% } %> 是一个 if语句判断, 如果是 true ,就会输出 My conditional content here.,注意: 花括号{ 也要放在 <%>内 花括号与花括号不能直接相邻,如果是 一个函数, 则要放在 <script runat="template"> </script>中, 此时的花括号可以相邻,书写方式同在C#中的 书写方式一致。

这段代码会生成这样一个输出:

My static content here.
My dynamic content here: "SomeValue"
Call a script method: Method output.
My conditional content here.


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CodeSmith 是一种基于模板的代码生成工具,它使用类似于 ASP.NET 的语法来生成任意类型的代码或文本。与其他许多代码生成工具不同,CodeSmith 不要求您订阅特定的应用程序设计或体系结构。使用 CodeSmith,可以生成包括简单的强类型集合和完整应用程序在内的任何东西。 当您生成应用程序时,您经常需要重复完成某些特定的任务,例如编写数据访问代码或者生成自定义集合。CodeSmith 在这些时候特别有用,因为您可以编写模板自动完成这些任务,从而不仅提高您的工作效率,而且能够自动完成那些最为乏味的任务。CodeSmith 附带了许多模板,包括对应于所有 .NET 集合类型的模板以及用于生成存储过程的模板,但该工具的真正威力在于能够创建自定义模板。 基本说明: CodeSmith 是一种语法类似于asp.net的基于模板的代码生成器,程序可以自定义模板,从而减少重复编码的劳动量,提高效率。 安装CodeSmith并且注册后发现有两个可运行程序CodeSmith Studio.exe和CodeSmith Explorer.exe CodeSmith Studio.exe用来创建自定义模板 CodeSmith Explorer.exe用来导入模板并且生成代码 打开 CodeSmith Studio.exe,新建一个C#模板。发现有如下类似与asp.net的标识符号 软件特性: 1.他可以用于生成C#,VB.NET,TSQL以及其他任何语言代码 2.他本身是可以编程的(这是他的灵活性之源) 3.他提供了强大的SchemaExplorer对象,使数据库储过程的生成非常容易 4.有了他,你不会再向我一样埋怨从一个项目到另一个项目时,需要重新写许多代码.因为你只需要一套模板而已 5.他使用的语法是典型的ASP.NET语法,并且,可以像我们写ASP那样将代码和静态内容混和撰写(好像在写ASP的时代一样)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值