ドメイン固有言語からのコード生成

Microsoft ドメイン固有言語ツールが、モデルで表されるデータからコード、ドキュメント、構成ファイル、およびその他の成果物を生成するための強力な方法を提供するしくみについて説明します。 ドメイン固有言語ツールを使用すると、データを表すクラスのセットを作成できます。また、名前とプロパティにそのデータが反映されたクラスにテキスト テンプレートを記述することもできます。

たとえば、Fabrikam には、顧客名と電子メールアドレスの XML ファイルがあります。 開発者は、Customer をクラスとし、プロパティとして名と電子メールを含むモデルを作成します。 データを処理するために複数のテキスト テンプレートを記述します。このフラグメントを使用すると、すべての顧客のテーブルが HTML ページの一部として生成されます。

<table>
<# foreach (Customer c in ContactList) {  #>
  <tr><td> <#= c.FullName #> </td>
      <td> <#= c.EmailAddress #> </td> </tr>
<# } #>  </table>

顧客データベースが処理されると、XML ファイルがモデル ストアに読み込まれます。 ドメイン固有言語ツールを使用して作成されたディレクティブ プロセッサを使用すると、テキスト テンプレート内のコードで Customer クラスを使用できるようになります。 多くのテキスト テンプレートは、同じストアに対して実行できます。

テキスト テンプレートは、ドメイン固有言語ツールに不可欠です。 これらは、ツールを Visual Studio と統合するために使用される VSPackage およびコントロールに加えて、ドメイン モデルの要素のソース コードを生成するために使用されます。

このセクションでは、ドメイン固有言語ツールで使用されるテキスト テンプレートを作成、変更、およびデバッグするためのいくつかの方法について説明します。

このセクションの内容

テキスト テンプレートからモデルへのアクセス
テキスト テンプレートでドメイン固有言語を参照する方法についての基本的な情報を提供します。

チュートリアル: モデルにアクセスするテキスト テンプレートのデバッグ
ドメイン固有言語を参照するテキスト テンプレートでトラブルシューティングとデバッグを行う方法について説明します。

チュートリアル: 生成済みディレクティブ プロセッサへのホストの接続
生成されたディレクティブ プロセッサにカスタム ホストを接続する方法について説明します。

DslTextTransform コマンド
ドメイン固有言語を参照するテキスト テンプレートのコマンド ラインで TextTransform 実行可能ファイルを実行するコマンド ファイルについて説明します。

関連項目

T4 テキスト テンプレートの作成
テキスト テンプレートのディレクティブとコントロール ブロックの構文を示します。