T4
タイトルが何を言っているんだおまえは?といった感じですが、ちょっと思いついたのでやってみました。後悔はしていない。 今回やる事 今回は、クラスや名前空間などの最小限の構造を定義することでアプリケーションコードのどんがらを作ってくれるものを最…
ということで、MSDNのT4テンプレートのドキュメントを見たのは、ちょろっと使おうと思ったからです。 コード生成とテキスト テンプレート (T4) 単調な繰り返しを伴うコードを書くのは苦痛でしかありません。私が尊敬する上司の人は、これを田植えと言ってま…
コード生成とテキスト テンプレート (T4) めもめも。
先日、ViewModelのコード生成を行うT4 Templateを作りました。そこで使ったテクニックを説明したいと思います。 前処理されたテキストテンプレート 以前にも紹介した前処理されたテキストテンプレートを使用しています。これはT4 Templateで書いたものを生成…
ということでフィードバック書いてみました。 https://connect.microsoft.com/VisualStudioJapan/feedback/details/634891/t4-template無料のアドオンとかあるにはあるけど・・・Expressで入るか怪しい気がするし、勝手にアドオン入れれない環境もあると思う…
前のやつにCommandも定義出来るように追加してみました。 namespace VMDsl { using System.Collections.Generic; // 名前空間 public class NSDef { public NSDef() { this.Classes = new List<ClassDef>(); } public string NS { get; set; } public List<ClassDef> Classes { g</classdef></classdef>…
前回たたき台を作ったMVVM生成のためのT4 Templateですが正直あんまり楽になった気がしないです。何故かというと、クラスのメタデータの定義が非常に冗長な感じになってたからだと思います。 1プロパティしかないクラスを定義するだけで、20行以上も書かな…
前回たたき台を作ったMVVM生成のためのT4 Templateですが正直あんまり楽になった気がしないです。何故かというと、クラスのメタデータの定義が非常に冗長な感じになってたからだと思います。 1プロパティしかないクラスを定義するだけで、20行以上も書かな…
ちょいと作ってみた。 これをひな形にやっていけばいかなぁ。もっといい方法とかあるよ!って人は教えてください。 ClassDef.ttinclude とりあえずクラスのメタデータを定義するためのクラス群 <#+ // 名前空間 class NSDef { public string NS { get; set; …
コードの自動生成は、色々なところでされていると思います。Excelのマクロで作ったり、自分でせっせとコードを書いたり、LLな言語を使ってさくっと作ったり、OSSのテンプレートエンジンで作ったり etc... そんな中で、1つコードジェネレータを作るときの選…
Visual Studio 2010でサービス参照を追加したときに作成されるクラスは、INotifyPropertyChangedまで実装してくれてる。 (VS2008のは未確認。実装してたっけか?)このT4 Template使えばIEditableObjectが動くように出来るかも。 リフレクション使ってるので…