对于代码生成器我们并不陌生,在日常编码中这也是用的比较多的工具之一。一般代码生成器主要功能是生成公共或基础代码来减少编码人员的工作量,而一款优秀的代码生成器除了生产代码以外,同时兼具生成项目架构和基础模块的能力,让开发人员把关注的核心放在业务逻辑上,提高编码效率减轻工作量。

现在市面上使用最多的代码生成技术就是模板生成技术,在这里推荐一款比较优秀的模板式生成引擎T4(Text Template Transformation Toolkit),因为VisualStudio本身也是用的它。作为一款十分优秀的IDE,想必T4能够得到它的青睐也足以说明T4的优秀了。

用VS新建一个类库项目,右击【添加】【新建项】添加一个文本模版

该文件后缀一般是.tt在VS中是可执行文件,保存时会自动执行文件中的代码。

TT模板和ASPX中的脚本一样,可执行的代码包含在<##>中。未包含在<##>中的文本将作为静态文本直接输出到目标文件中。

我们直接在文件下面空白处输入“Hello,T4”保存之后会生成一个同名的后缀为.txt的目标文件,打开该文件,可以看到如下:

TT模板中的静态文本直接输出到了该文件中。T4模板的使用在下篇会详细介绍。

那么VS在哪里用到了T4呢?其实VS中绝大部分通过模板创建的文件都使用了T4。我们随便新建一个类,里面就生成了一些基础的代码,这就是T4是作用,只是T4一直工作在后台,我们往往忽略它的作用。

(注意:默认新建的TT模板,VS是不支持语法高亮和智能提示的,为了方便书写和演示,我安装了语法高亮插件,我使用的是T4 Editor,在VS联机模板中可以下载到)

一、初识T4引擎的更多相关文章

  1. 四、分离T4引擎

         在前几篇文章中,我使用大量的篇幅来介绍T4在VisualStudio中如何使用.虽然在一定程度上可以提高我们的工作效率,但并没有实质上的改变.不过从另一方面来说,我们确实了解到了T4的强大. ...

  2. 【关于微软的上一代模板引擎 T4引擎】

    导语:国内有名的动软代码生成器用的就是T4引擎......可以自己下载下来用用,批量生成固定模式的代码文件,十分有用........... 示例代码:示例代码__你必须懂的T4模板:浅入深出.rar ...

  3. T4模板批量生成代码

    大家通过比对下,就应该知道怎么玩. T4代码 <#@ template debug="false" hostspecific="true" languag ...

  4. 用T4 Template生成代码

    1 T4语法 T4的语法与ASP.NET的方式比较类似.主要包括指令.文本块.控制块. 1.1    指令 指令主要包括template, output, assembly, import, incl ...

  5. T4模板

    T4,即4个T开头的英文字母组合:Text Template Transformation Toolkit. T4文本模板,即一种自定义规则的代码生成器.根据业务模型可生成任何形式的文本文件或供程序调 ...

  6. T4 模板 : 一种提升ASP.NET MVC开发速度方法

    最近由于需要在框架中提供一些自定义模板的功能,找到了一篇博客,可惜似乎是翻译工具直接翻的,读不通顺,就试着自己翻译下,我不会完全翻译原文的句子,可能会对原文进行小范围的我认为更合适的句子并添加些注释, ...

  7. T4语法快速入门

    1.什么是T4? T4,即4个T开头的英文字母组合:Text Template Transformation Toolkit.T4(Text Template Transformation Toolk ...

  8. 你必须懂的 T4 模板:深入浅出

    示例代码:示例代码__你必须懂的T4模板:浅入深出.rar (一)什么是T4模板? T4,即4个T开头的英文字母组合:Text Template Transformation Toolkit. T4文 ...

  9. T4 模板入门

    T4,即4个T开头的英文字母组合:Text Template Transformation Toolkit.T4(Text Template Transformation Toolkit)是微软官方在 ...

随机推荐

  1. Swordfish

    zoj1203:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1203 题意:给定平面上N个城市的位置,计算连接这N个城市所 ...

  2. 不管,干一个HAPROXY先

    说不定要用到的塞.... 1.wget http://www.haproxy.org/download/1.5/src/haproxy-1.5.12.tar.gz 2.tar -zxvf haprox ...

  3. json数值和结构

    JSON 值可以是: l  数字(整数或浮点数) l  字符串(在双引号中) l  逻辑值(true 或 false) l  数组(在方括号中) l  对象(在花括号中) l  null JSON建构 ...

  4. eclipse中tomcat内存溢出问题,报PermGen space

    场景 最近在eclipse中的tomcat服务器下放三个不同的应用程序,其中两个应用程序用到了各自的第三方jar包.刚开始时把这三个应用程序分别部署到各自的tomcat服务器运行,没问题.后来想通过第 ...

  5. Qt tip 网络请求 QNetworkRequest QJason 处理 JSON

    http://blog.csdn.net/linbounconstraint/article/details/52399415 http://download.csdn.net/detail/linb ...

  6. PHP打印各种金字塔!

    PHP打印各种金字塔! <?php for($i=1;$i<=7;$i++){ for($j=1;$j<=5-$i;$j++){ echo ''; } for($k=1;$k< ...

  7. Android中SharedPreferences使用方法介绍

    一.Android SharedPreferences的简介 SharedPreferences是一种轻型的Android数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用 ...

  8. SORT ORDER BY STOPKEY

    select * from ( select * from ( select a.*,rownum rn from page a where object_id >1000 and owner= ...

  9. Gvim各种插件配置(windows环境下)

    1.Vundle插件:https://github.com/gmarik/Vundle.vim 用于管理Vim插件,安装此插件需要系统中已安装git,参考链接:Git for Windows安装和基本 ...

  10. Linux负载均衡软件LVS之一(概念篇)

    一. LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver ...