ASP.NET Webアプリケーションプロジェクトを開発する際に考慮すべきIoCと、さまざまなIoCの利点は何ですか?
- ObjectBuilder
- 団結
- Spring.NET
ASP.NET Webアプリケーションプロジェクトを開発する際に考慮すべきIoCと、さまざまなIoCの利点は何ですか?
それはあなたのリストにはありませんが、キャッスルウィンザーを見ることを検討してください
ファクトリ自体ではなくファクトリ製品が注入されるようにファクトリをサポートする機能や、プロキシを注入するための Wcf 機能、または依存関係を持つホストを作成する機能などの機能の数。
個々のアイテムを配線するための流暢なインターフェイスを備えていますが、各コンポーネントをリストする必要がないように、規則を使用して自動配線することをお勧めします。
その他の優れた機能:
これは、人気のあるIoCを示す今年の世論調査です。Unity がトップのようですが、それはおそらく、これが Microsoft 製品であり、Microsoft ワークショップがデフォルトで選択するためです。
ASP.NET MVC プロジェクトでStructureMapを使用していますが、非常に便利であることがわかりました。唯一の本当の欠点は、ドキュメントが限られていることです。自動配線は非常にうまく機能し、強力な規則を使用してクラスとインターフェイスに名前を付ける場合、構成はほとんど必要ありません。たとえば、次のようになります。
public interface ISomething { ... }
public class Something: ISomething { ... }
それ以前は Spring.NET を使用していましたが、Spring.NET は他の (IoC 以外の) 必要のない多くのことを実行し、必要なことを行うには複雑な XML 構成が必要だったため、使用していませんでした。ただし、IoC コンテナーとしては問題なく機能し、非常に柔軟でした。
何を選択するにしても、IoC を使用できるようにコーディングすることをお勧めします。私たちはいたるところでインターフェイスを使用しています。これは、単体テストとそれがもたらすすべての利点に本当に役立ちます。
MVC3 の Unity のものも面白そうですが、まだそれを試す機会がありませんでした。
多くの人がこれらを 2 つまたは 3 つ以上使用したとは思えません。Unity と Ninject の非常に限られた経験では、最終結果に大きな違いはありません。マッピングを構成するためのオプションがわずかに異なります。より高度な機能のいくつかは異なると思いますが、これらはおそらくほとんど使用されません。結局のところ、IoC コンテナーのコア要件はそれほど複雑ではありません。独自のコンテナーを作成するのは非常に簡単です。
はるかに重要なのは、IoC パターンを使用していることです。どのブランドを選択しても、結果として得られるアプリケーションの品質に大きな影響を与えることはおそらくありません。
それだけの価値がある場合は、非常に軽量であるという理由だけで Ninject をお勧めします。