T4 (Text Template Transformation Toolkit) Template とはコード生成ツールのことです。テンプレートファイルに書かれた内容からテキストファイルを出力します。

T4 Template を使用するには

 T4 Template は Visual Studio 2005 以上で使用できます。Visual Studio 2005 の場合は Visual Studio 2005 SDK も合わせてインストールする必要があるようです。

 T4 Template を使用するには、テキストファイルの拡張子を .tt にしてプロジェクトに追加します。ここでは "TestTemplate.tt" というファイル名にします。

T4 Template 画像1

 すると "TestTemplate.tt" と一緒に "TestTemplate.cs" という二つのファイルが追加されます。拡張子 .tt はテンプレートファイルで、拡張子 .cs がテンプレートファイルにより出力されたファイルです。出力ファイルの拡張子は後で変更することができます。

T4 Template 画像2

 テンプレートファイルには、テキストと制御コードを書くことができます。その内容に従ってコードが生成されます。制御コードには、クラスライブラリを作成する時と同じ構文でコーディングすることができます。

T4 Template 画像3

 この画像ではテンプレートファイルのコードに色が付いていますが、標準のままでは味気ない黒一色です。また、インテリセンスも表示されないので、メモ帳で編集しているのと同じです。T4 Template 用のエディタをインストールすることで、コードに色が付きインテリセンスも表示されるようになります。

T4 Template 用のツール

 エディタにはフリーのものから有償のものまで色々あります。私はフリーの「tangible T4 Editor」を使用しています。これはコードの色やインテリセンスはもちろんのこと、新しい項目を追加する時のテンプレートに T4 Template 用のテンプレートも作成してくれるので、テキストファイルの拡張子を .tt に変更する必要もなくなりとても便利です。ただ、ダウンロードする時に名前と E-Mail アドレスを入力するのに抵抗がありますが、その分の価値は十分にあると思います。

 他のフリーのエディタには「Visual T4 Editor Community edition for VS 2008」があります。これはすぐにダウンロードできます。しかし、制御コードにインテリセンスが表示されず、制御コードにも色が付かないので機能不足な気がします。Visual Studio に標準のエディタが用意されれば一番いいんですけどね。

 その他に「T4 Toolbox」といった T4 Template を支援してくれるツールもあります。

T4 Template をもっと知りたい

 T4 Template のことを詳しく知るには、Oleg Sych さんの「ブログ」が非常に参考になります。「T4: Text Template Transformation Toolkit」のページから読んでいけば、T4 Template のことを理解しやすいと思います。

T4 Template の可能性

 テンプレートに制御コードを入れれることが最大の魅力だと思います。コードスニペットでもある程度コード生成することができますが、T4 Template は制御コードのおかげで柔軟なコード生成が可能になっています。例えば DB のテーブル情報を読み込み、そのテーブルに対する読み書きの処理を生成することもできます。

 デザインパターンのように同じようなコーディングをするのに T4 Template は向いていると思います。プログラムは 0 からコーディングするより、生成されたコードから削除していく方が早く作成できるからです。

 同じようなコーディングをしていることに気づいたら、それはテンプレート化するチャンスです。