-
12-10-2019 - |
質問
ASP.NET Webアプリケーションプロジェクトの開発中に考慮すべきIOCと、異なるIOCの利点は何ですか?
- ObjectBuilder
- 団結
- spring.net
解決
それはあなたのリストにはありませんが、見ることを検討してください キャッスルウィンザー
工場をサポートするなどの施設数は、工場自体や、依存関係のあるホストを作成するための工場自体やWCF施設ではなく注入されます。
個々のアイテムを配線するための素敵な流fluentインターフェイスがありますが、各コンポーネントをリストする必要がないように、コンベンションを使用するためにコンベンションを使用することができます。
他のいくつかの素晴らしい機能:
- 新しい改訂以来、単一のDLLが必要です。
- サブ依存性リゾルバーを介してリストと配列の注入をサポートします
ここ 今年は、好まれるIOCを示す世論調査です。 Unityは最高のようですが、それはおそらくMicrosoft製品であり、Microsoftワークショップがデフォルトでそれを取り上げるからです。
他のヒント
を使用しております structuremap ASP.NET MVCプロジェクトで、それが非常に便利であることがわかりました。唯一の本当の欠点は、限られたドキュメントです。自動配線は非常にうまく機能し、クラスやインターフェイスに名前を付けるために強力なコンベンションを使用する場合、それはほとんど構成を必要としません。
public interface ISomething { ... }
public class Something: ISomething { ... }
それ以前はspring.netを使用していましたが、それは私たちが実際に必要としない他の(非IOC非)ことをしているため、必要なことを行うために複雑なXML構成を必要とするため、それを捨てました。 IOCコンテナとしては正常に機能し、非常に柔軟でした。
私がお勧めする重要なことは、IOCの使用を許可するためにコーディングであることをお勧めします。至る所でインターフェイスを使用します。これは、ユニットテストとすべての利点も実際に役立ちます。
MVC3のUnityのものも面白そうに見えますが、まだプレイする機会はありませんでした。
多くの人がこれらのうち3つまたは3つ以上を使用しているとは思わないが、団結とニッジの私の非常に限られた経験では、最終結果にそれほど大きな違いはありません。彼らは持っている 少し マッピングを構成するためのさまざまなオプションであり、より高度な機能のいくつかは異なると確信していますが、これらはおそらくめったに使用されません。結局のところ、IOCコンテナのコア要件はそれほど複雑ではありません - あなたは非常に簡単に自分のものを転がすことができます。
さらに重要なのは、IOCパターンを使用していることです。選択した特定のブランドは、おそらく結果のアプリケーションの品質に大きな影響を与えないことです。
それが非常に軽量であるという理由だけで、Ninjectをお勧めする価値があります。