Visual Studio 2008には、Domain-Specific Language Toolsの一部としてText Template Transformation Toolkit(T4とも呼ばれる)が含まれており、テキストテンプレートに基づいて、コードを生成するのに使用することができる。T4は、DSL(source)や GAT(source)ツールキットに組み込まれているVisual Studio 2005でも使用することができる。
MSDN(source)の説明では以下のようである。
テキストテンプレートはファイルであり、テキストブロックおよび制御ロジックを含んでいる。テキストテンプレートを変換する際、制御ロジックがテキストブ ロックとモデル内のデータを結合し、出力ファイルを生成する。テキストテンプレートを使用して、コードファイルやHTMLレポートのようなテキスト成果物 を作成することができる。たとえば、ウィザードのように、ユーザインターフェイスの個々のページ間でのフローモデルの制御は、入力としてテキストテンプ レートに渡される。テキストテンプレートは、そのフローの制御を実装するコードおよび構成ファイルを生成する。
テキストテンプレートは、テキストテンプレートファイルを入力として受け取り、それを変換し、出力テキストファイルを生成するという変換プロセスを経る。 変換プロセスには、2つのステップがある。最初のステップでは、T4エンジンがテキストテンプレートを使用して、 仮の変換クラスを生成する。次のステップでは、T4エンジンがその変換クラスをアセンブリーにコンパイルし、コードを実行して出力テキストファイルを生成 する。
「Hello World!」の例は、以下のとおりである。
<#@ template language="C#" #>
<# Write("Hello World!") #>
テキストテンプレートには、Visual BasicまたはC#コードを含めることが可能であるが、指定されていない場合は、C#はデフォルトの言語である。出力ディレクティブは生成済みテキスト ファイルタイプを指定するのに使用される。多くの出力ファイルタイプがあるが、最も一般的なものとしては、.html、.txt、.csおよび.vbであ る。デフォルトの出力ファイルタイプは.csである。出力ディレクティブの使用方法の例は、以下のとおりである。
<#@ output extension=".html" #>
Visual Studioでは、テキストテンプレートの編集サポートが制限されている。Clarius Consultingには、「さまざまなT4テンプレートパーツのカラーライゼーション、IntelliSenseお よびテンプレートの設計時のプレビュー向けのサポートを提供している」フリーエディター(サイト・英語)がある。Visual Studioは、テキストテンプレートのデバッグおよび変換プロセスをサポートするが、 単純ではない。デバッグに関する詳細が、MSDN(sorce)にある。またGareth Jones氏による簡潔なチュートリアル(source)も利用できる。Oleg Sych氏はT4の導入記事(source)を投稿している。より総合的なMSDN文書は、ここ(source)で利用可能である。
原文はこちらです:http://www.infoq.com/news/2008/04/T4