.NET Clips - コード生成のタグがつけられたエントリー
2
CLIPS

Viausl Studio 2010で自作コードジェネレータ

2614日前に更新 aoki1210aoki1210 2622日前に登録
2010年08月24日 GMT 2010年08月16日 GMT
コードの自動生成は、色々なところでされていると思います。Excelのマクロで作ったり、自分でせっせとコードを書いたり、LLな言語を使ってさくっと作ったり、OSSのテンプレートエンジンで作ったり etc... そんな中で、1つコードジェネレータを作るときの選択肢として追加しても良さそうな機能がVisual Studio 2010にあります。その名も「前処理されたテキストテンプレート」です。正直、この名前から何をするものかってさっぱりわかりませんが、コードジェネレータとかを作るときにもってこいの、デキル奴だったりします。 とりあえず、Hello worldから始めてみましょう。HelloCodeGeneratorという名前でコンソールアプリケーションを作成します。そこに「HelloPreTextTemplate.tt」という名前で「前処理されたテキストテンプレート」を作成します。 HelloPreTextTemplate.ttのファイルの中身を以下のようにします。 (詳細)
カテゴリー: ツール(VisualStudio/Expression) | クリック数: 37 | コメント | | ソースサイト: d.hatena.ne.jp
タグ: Visual Studio 2010, コード生成
1
CLIPS

やっぱ実行時よりビルド時

2619日前に更新 aoki1210aoki1210 2622日前に登録
2010年08月19日 GMT 2010年08月16日 GMT
こないだ、動的コード生成がらみのネタで1ページ書いて公開したところ、「ビルド時で済むものは動的コード生成じゃなくてビルド時コード生成にして欲しい。」との至極まっとうなご意見をいただきまして。 最近、ViewModel の実装が面倒という問題に対して、DynamicObject を使った動的プロキシが流行ってるみたいだけど、ViewModel なんてビルド時コード生成で事足りる最たるもので、あんまり動的にやって欲しくないという。まあ、ごもっとも。 まあ、僕としても方向性としてはおおむねこの意見に割かし賛成だったり。具体的には: DynamicObject の実装が思いのほか簡単なので、「手抜き実装」としてはあり。 ちゃんとやるならやっぱり静的に(ViewModel 手書きするか、ビルド時コード生成するか)した方がいいと思う。 くらいに思っています。 dynamic は、ちゃんと使えば静的なコードの5~10倍程度のペナルティで済むという話に対しても、「過度に恐れる必要もないけども、そりゃ避けれるなら避けるよね」くらいの立ち位置。動的にやるのが避けられない状... (詳細)
カテゴリー: アーキテクチャ/デザイン/OSS | クリック数: 19 | コメント | | ソースサイト: ufcpp.spaces.live.com
タグ: Dynamic, コード生成
1
CLIPS

CodeDomを使ったコードジェネレーター

2633日前に更新 aoki1210aoki1210 2636日前に登録
2010年08月05日 GMT 2010年08月02日 GMT
ビジネスロジックをもつクラスから、WCFのサービスコントラクトを生成する自作ツールを使っています。リフレクションを使ってメソッド情報を取得し、それを String.Format で整形して出力するというベタな方法で実装した簡単なものです。 でもこの方法だとジェネリックが絡んだときに上手く出力できません。奴らは Type.Name で名前を取得したら を [ ] にして返しやがります。しかも、[ の前にジェネリックパラメータの数とか付けちゃってくれます。Dictionary (詳細)
カテゴリー: アーキテクチャ/デザイン/OSS | クリック数: 7 | コメント | | ソースサイト: d.hatena.ne.jp
タグ: CodeDom, コード生成