1. 程式人生 > >T4系列文章之2:T4工具簡介、調試以及T4運行原理(轉)

T4系列文章之2:T4工具簡介、調試以及T4運行原理(轉)

技術分享 animate 等了 edit uml 執行 為我 direct 感覺

出處:http://www.cnblogs.com/damonlan/archive/2012/01/12/2320429.html

一、前言

經過第一篇,我想大家現在對T4有了基本的印象,應該對T4有了一個大致的了解吧。現在,我們接著來講一下T4的工具,然後下一篇我就開始T4的用法了。各位客官,就等了。


二、工具介紹

2.1 上圖說話

先不說,先來一張沒有裝工具的介紹,很平庸、很那個那個,看了很傷心:

技術分享

我沒騙你們吧,是不是看了有點很默認的感覺?沒錯,我第一次也是這種感覺。後來我就在網上找啊找,找到了我要介紹的這款工具。在看看我使用這個工具的效果圖,如下:

技術分享

你看,高亮語法,而且還有提示功能,爽歪歪。

2.2 工具廬山真面

如果你在VS 2010裏進行編寫 t4 模板語言,對不起,你每次打開都是那種沒有高亮顯示的那種效果,被VS 寵壞了的程序員,看到這樣 心裏肯定不舒服。

【如下圖animated-thumb.gif】很普通,沒有高亮。第一次接觸這個時候,心裏真的非常不好受呢。

其實說到這裏,微軟也真懶,你看她裏面那麽的C#、VB、XML、JavaScript啊等等什麽,都實現了高亮提示,為什麽就不對T4呢?哥表示強烈抗議。

不過,抗議無效,還好的是有一位牛人開發了一款插件,可以很好的集成到VS裏面去。

下載地址:tangible T4 Editor plus modelling tools

http://t4-editor.tangible-engineering.com/Download_T4Editor_Plus_ModelingTools.html

只需要簡單的填一下,就OK了,是免費的哦。

主要的功能:

  1. 語法高亮顯示
  2. T4中的指示符(directives)和代碼快(code block)智能提示
  3. 對模板代碼的智能提示
  4. 支持T4包含文件

做的很牛X。

下下來之後,是tangibleT4EditorPlusModellingToolsSetup.msi ,點擊開始安裝,這個木有問題吧。因為我用的是win7,所以會問一下安全性的問題:

技術分享

不理它,點擊run。

安裝完了之後,你可以在你的“工具”→“擴展管理器”裏去查看:

技術分享

打開之後 ,你可以看到一個T4 Editor 就是這個插件了。UML2Code,是我現在做的一個插件。呵呵。到時候 要是可行,我會放到園子裏來。

技術分享

這個應該就真沒多東西了。


三、調試

在T4裏是沒有像VS的C#調試那麽簡單,在左邊設置一個調試點,然後點擊運行就OK了。

不過,也差不多吧!值需要的只是:<# Debugger.Break(); #> 把這個放到你需要調試的地方,等你運行的時候,就會自動的跳到這裏啦。然後,你就可以看到你的內容,比如我在我的項目中調試中的結果:

技術分享

,然後 安F10 行執行,F11是但不執行,都是一樣的啦。


四.T4的工作原理

我在網上找了一張很好圖,如下

技術分享

在這個第一步的時候,T4引擎編譯這個模板文件:它會解析指令處理文件(也就是@開發部分)、文本文件和代碼塊,然後生成一個具體的TextTransformation 文件,接著會把這個類文件編譯成.NET的程序集。

第二步的時候,T4引擎會創建一個GeneratedTextTransformation 類的實例,它的名字叫做:TransformText的方法,這個方法的主要作用就是用來保存輸出文件中放回的字符串。

這個就是今天要說的內容了。

T4系列文章之2:T4工具簡介、調試以及T4運行原理(轉)