Visual Studio 2008を使用してC#でプログラミングする際に、私はしばしば "自動"コード生成を望みます。可能であれば、MSBuildソリューションファイルをRakeに呼び出すことで、コード生成のためにRubyコードを呼び出し、生成されたファイルが自動的に私のソリューションに表示されるようにすることで、実現したいと考えています。誰かがMSBuildからコードジェネレーションやその他の利点のためにRakeに電話をした経験がありますか?どうだった?あなたの考え/勧告は何ですか?
このような自動コード生成が役立つビジネス上の例がいくつかあります。最近のプロジェクトでは、私はドル金額を含むいくつかのプロパティとのインターフェイスを持っていました。私はビジネスユニット名で「修飾」されていることを除いて、第1インタフェースと同じプロパティを持つ第2インタフェースと第3インタフェースを必要としていました。このような何か:この例では
public interface IQuarterlyResults
{
double TotalRevenue { get; set; }
double NetProfit { get; set; }
}
public interface IConsumerQuarterlyResults
{
double ConsumerTotalRevenue { get; set; }
double ConsumerNetProfit { get; set; }
}
public interface ICorporateQuarterResults
{
double CorporateTotalRevenue { get; set; }
double CorporateNetProfit { get; set; }
}
は、「消費者のビジネスユニット」と「企業ビジネスユニット」があります。 IQuarterlyResultsのすべてのプロパティはICorporateQuarterlyResultsの "Corporate" + [プロパティ名]というプロパティになり、IConsumerQuarterlyResultsも同様のプロパティになります。
なぜ消費者向けのIQuarterlyResultsと企業向けのインスタンスが存在するのではなく、これらのインターフェイスを作成するのはなぜですか?なぜなら、私が作成した電卓オブジェクトを使って作業するとき、ユーザーは100種類のプロパティに対処しなければならず、 "ConsumerNetProfit"のような "完全修飾"プロパティ名を扱うことができればはるかに混乱することはありません。
この例では、うんざりすることはありません。これは単なる例であり、主な質問ではありません。
主な質問はこれです:私はコード生成のためのRubyとERBを使用して愛し、私は、タスク間の依存関係を管理するために熊手を使用して大好きです。上記の問題を解決するには、MSBuildにRakeを呼び出して、Rake/Rubyに「コア」インターフェイスのプロパティのリストを読み込ませ、すべての依存インターフェイスを作成するためのコードを生成させます。プロパティ。 VS.NETソリューション用のMSBuildファイルに入れておくと、ビルドを行うたびにトリガされます。
誰もがこのようなことを試みましたか?どのようにあなたのために働いたのですか?長所、短所、成功のヒントなどについて、どのような洞察を共有できますか?
ありがとうございます!
誰でも?ブエラー? (私はMikeJの答えが好きですが、彼はMsBuildの代わりにNantを使っていました)。 –