2009-05-13 8 views
6

誰かがNetTiersテンプレートをVisual StudioのT4テンプレートに移植しましたか?あるいは、同様の範囲のシステムがありますか?誰かがT4を作業環境で使用していますか? CodesmithとT4の間に何が(もしあれば)大きな違いがありますか?CodeSmith v.s. T4:.netTierレベルスイート

+0

また、各T4テンプレートが1つの出力ファイルしか生成しないという事実を人々が克服する方法も知りたいです。 –

+0

http://www.olegsych.com/2008/03/how-to-generate-multiple-outputs-from-single-t4-template/ –

答えて

5

私はちょっとT4でおしゃべりしました。ちょっと無料ですが、VS2008に含まれていればそれを使っていますよね?

私の基本的な考え方は、データベーステーブルを読み込んで独自の「独自ロール」のORMクラスを作成する一連のテンプレートを作成することでした。

私はT4をあきらめて、CodeSmithのケーキのような最も基本的なものを手に入れることができませんでした。

T4では、サーバ、データベース、テーブルをどのように使用するかを選択するなどの簡単な作業でも、テンプレート自体の「外側」から効率的に行うことはできません。はい、文字列値としてこれらの値をすべてT4テンプレートにハードコードすることはできますが、実際は解決策ではありませんか?

CodeSmithは、サーバー、データベース、およびテーブルを選択するための優れた機能を備えています。テンプレートのプロパティとしてこれらを設定し、必要なものだけを選択して、選択した特定のテーブルでテンプレートを行います。

私の結論:T4は有望ですが、まだ「そこにはありません」。非常にシンプルなシナリオではうまくいくかもしれませんが、現時点では、Codesmithほど柔軟で強力ではありません。

.netTiersなどのシナリオでは、当面はCodesmithを使用します。

マーク

+0

もちろん別のテンプレートに設定して、あなたのメイン世代のテンプレート。この方法では、設定ファイルが小さくなり、すべてが1つのファイルに格納されます。 'settings.tt'と呼ぶことができます –

+0

@Robert:確かに - 根本的な問題は解決しません - T4テンプレートにパラメータを簡単に渡す方法はありません - 私の意見では主な**欠点です –

+0

私は知っていますこれは古い質問ですが、誰かが議論を交錯するような場合に備えて、T4には現在 "Parameter"ディレクティブがあります。 http://www.olegsych.com/2010/05/t4-parameter-directive/ – EBarr

5

T4はCodeSmithではありません。はい、C#またはVisual Basicコードの形式で.ttファイルにパラメータを指定し、<#@ include#>ディレクティブを使用して、コード生成ロジックの実際の実装を参照します。これは、CodeSmithを使用してXMLファイルに同じ情報を指定するよりもハードコーディングではありません。

T4テンプレートのNetTierのスイートの場合は、S#arp Architecture:http://code.google.com/p/sharp-architecture/を参照してください。

1

Linqインターフェイスを備えたオープンソースのDALと、テーブル、ストアドプロック、ビューなどのラッパーを作成するFluentインターフェイスのT4実装をお探しの場合は、 SubSonic 3.0。 SubSonic 2.2は、T4とLinqインタフェースを差し引いた同じ優位性を持ち、リリースモードです。 SubSonic 3.0はAlphaにありますが、必要に応じてコードや.dll、T4テンプレートをダウンロードできます。

関連する問題