17

過去 2 年間 CodeSmith を使用しており、その機能が気に入っています。ただし、Visual Studio に組み込まれており、非常に優れた機能を実行できる T4 についても知っています。VS2010 の友人 T4 との会話に基づいて、T4 はさらに良くなるでしょう。

問題は、CodeSmith バスに乗り続けるか、それともすべてのテンプレートを T4 に変換し始める時期かということです。

更新 おそらく、質問の仕方が明確ではありませんでした。明らかに、新しいテンプレートが機能するまで、cs テンプレートを削除して使用を停止するつもりはありません。しかし、この時点で努力する価値はありますか? 現時点で、T4 は CodeSmith よりも優れた利点を提供していますか? 代わりに T4 用のテンプレートを作成することで、効率が 100 倍向上する機能または機能セットはありますか?

4

1 に答える 1

24

私は T4 に非常に興奮し興奮しており、CodeSmith のすべてのものを T4 に変換しようとしましたが、T4 には間違っている/欠けているものがかなりあることを知りました。

  • テンプレートのパラメーターはサポートされていません。すべてをテンプレートにハードコードする必要があります.....
  • T4 の Visual Studio ホストはかなり制限されています
  • 単一のテンプレートから複数の出力ファイルを直接かつ簡単にサポートすることはできません

Kathleen Dollard のT4 の何が問題なのかというブログ投稿をチェックしてください- 彼女は .NET のコード生成の女王であり、彼女はそれを非常にうまくまとめています - 私は彼女の問題に 100% 同意します。

全体として、多くの試行錯誤の後、私は T4 をほとんどあきらめました - 少なくとも私が使用していたタイプのテンプレート (主にデータベース テーブルを調べて抽出する) ではなく、まだプライムタイムの準備が整っていません。たとえば、自家製の ORM の基盤として、またはデータベースから定数や構成設定などを抽出するため)

そして、VS2010 で T4 を試してみたところ、これがどれだけ修正されたかはわかりません....多くはないようです。他にも興味深いコンセプトがいくつかあります (前処理されたテンプレート、おそらくパラメーターのサポートなど) が、基本的な欠陥のほとんどはまだ残っているようです.....

だから今のところ: まだ CodeSmith を捨てないでください!! VS2016 の T4 も同様に強力になるかもしれませんが、それまでは.....

資力:

于 2010-03-29T14:51:49.160 に答える