2013-05-09 11 views
6

t4テンプレートの利点は、asp.netのクラスファイルよりも何ですか?t4テンプレートの優位性

同様に、t4テンプレートを使用して厳密に型指定されたクラスを生成しています。 asp.netのc#クラスファイルを使って同じことができます。ですから、t4テンプレートの通常のクラスファイルの利点は何ですか?

誰でも、クラスファイルに実装できることを指摘してください。

よろしく、 Sujith

答えて

0

私はMSDNチュートリアルから取らこの引用で始まると思います:T4テキストテンプレートは、テキストファイルを生成することができ、テキストブロックおよび制御ロジックの混合物である

。コントロールロジックは、Visual C#またはVisual Basicでプログラムコードの断片として記述されます。生成されるファイルは、Webページ、リソースファイル、または任意の言語のプログラムソースコードなどの任意の種類のテキストにすることができます。

T4テンプレートは、ダイナミックテキストを生成するために使用されます。これは、クラスでも可能です。エンティティフレームワークまたはDataSet Designerは、エンティティをデータベースからデザイナにグラフィカルにドラッグアンドドロップし、データベーステーブルを反映するすべてのクラスを生成できるようにすることによって、デザインタイムコード生成の良い例です。

カスタムツールは、生成されたデザインタイムXMLをC#クラスで変換します。この背後にあるメカニズムは、T4テンプレートの機能と似ています。

この概要では、T4テンプレートがどのように役立つかをよりよく理解することができます。

0

他のコードを書き込むコードを書くことができます。単一の場所にリファクタリングできないものや、T4(または任意のコード生成)を介してより簡単に集中化されるものがあります。

中央のドライバが複数のファイルを必要としたり、1つのファイルに多数のコードを必要とするコードがあります。それを十分に活用するために

別の方法...私は.sqlファイル、.xsl.js.csファイルを生成少しC#のオブジェクトを書き込むためのT4テンプレートを使用していました。すべてが単一のC#オブジェクトから、一連のルールに基づいています。だから私は1つのC#テンプレートからいくつかの便利なファイルを生成しています。私は、そのタイプを保持するテーブルを作成するために必要な.sqlを生成することができます。アイテムに関連する設定値を定義する.xslまたは.xml、強く型付けされたモデルをjavascriptに変換する.jsファイル、そして最後にはccsの実際のモデル用の.cs。

0

簡単に言えば、T4テンプレートは、Entity Frameworkモデルのような入力データに基づいて、クラス(およびその他のファイル)を生成することができます。これは、同一の機能を持つ多数のクラス(大規模なEntity Frameworkモデルのすべてのエンティティのクラスなど)を作成する必要がある場合に非常に便利です。入力が変更された場合、T4テンプレートはジョブを実行し、作成されたクラスを自動的に更新します(入力ファイルで「カスタムツール」を実行してT4テンプレートを実行することもできます)。

T4テンプレートは(もちろん、作成するクラスの他の部分に)メンバーを追加できるように部分クラスを作成できます。この方法で、テンプレートがクラスを再作成するときに上書きされない機能を追加できます。

EFモデルのPOCOクラス(.NET 4.5ではEFのデフォルト)ベースを生成するT4テンプレートは、T4テンプレートの優れた使い方の完全な例です。もう1つの例は、EFモデルのすべてのエンティティクラスのビューモデル基本クラス(MVVM用)を作成するT4テンプレートです。

関連する問題