2009-05-26 1 views
1

私はvb.net 2.0とナントを使ってImビルドする比較的小さなアプリケーションを持っています。いくつかの出力ファイルを生成するために外部exeファイルを呼び出し、その後それらの出力ファイルを処理するアプリケーションです。。ナントを使ったデバッグビルドでの.NET依存性注入

私は、スタブの実装と実際の実装を作成したexeへのインタフェースを構築しました。これを行うには、nantを使用してアプリケーションのDEBUGビルドを作成するか、スタブの実装、または適切な実装を使用するアプリのPRODビルドを作成します。

これをどのように達成できますか?

また、私はあなたが知っているだけのように.NETの新しいバージョンにアップデートすることはできません:)

感謝を! マーク

答えて

3

#if DEBUGプリプロセッサディレクティブを使用したことはありますか?あなたは、次のような何かができます:

object myDependency; 
#if DEBUG 
myDependency = new Stub(); 
#else 
myDependency = new Actual(); 
#endif 

だけの思考をするが、その場合は、比較的小規模なアプリケーションは、それは手間の多くを必要としない素敵な、シンプルなソリューションです。 Debugプロファイルをビルドすると、DEBUGコンパイラオプションが自動的に設定されます。リリースプロファイルをビルドすると、DEBUGコンパイラオプションは存在しません。単純なアプリケーション以外のものでは、NinjectのようなIoCフレームワークを使用すると言います。その素敵でシンプルで軽量な...小規模なアプリケーションでうまくいくはずです。

+0

悪い考えではありませんが、私はおそらくそれを小さなアプリだと考えています。 – Mark

+0

誰もが実際に参照できる資料を持っていますか? ?ユニットテストを実行する場合と同様に、prod/devビルドなど?私はそれについて多くを見つけることができないようです。 – Mark

+1

(これはコメントではなく、回答として追加することを意図しています)うん、#if DEBUGはあなたの友人です。特に、Webで作業し、複数のWebサイトのバージョン(開発、ステージング、および制作)を持つ場合。 – eduncan911

0

そこには多くのDIフレームワークがあります。しかし、私が知っているもののうちのどれもが "ビルドツール"ではありません。あなたはFunqのようないろいろ書い高速なものを必要とする場合(1)うまくやるかProSのでしょう、それが

を行うのとき(2)あなたはFunq上のダニエルCazzulinoのBLODを読みたいかもしれない、彼はいくつかのDIの

ベンチマークここで、(3)私が持っているでしょう上にリンクされていますが、まだ許可されていません