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" というファイル名にします。
すると "TestTemplate.tt" と一緒に "TestTemplate.cs" という二つのファイルが追加されます。拡張子 .tt はテンプレートファイルで、拡張子 .cs がテンプレートファイルにより出力されたファイルです。出力ファイルの拡張子は後で変更することができます。
テンプレートファイルには、テキストと制御コードを書くことができます。その内容に従ってコードが生成されます。制御コードには、クラスライブラリを作成する時と同じ構文でコーディングすることができます。
この画像ではテンプレートファイルのコードに色が付いていますが、標準のままでは味気ない黒一色です。また、インテリセンスも表示されないので、メモ帳で編集しているのと同じです。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 からコーディングするより、生成されたコードから削除していく方が早く作成できるからです。
同じようなコーディングをしていることに気づいたら、それはテンプレート化するチャンスです。