.netには多くのIoCフレームワークがあることを私は知っています(それらはNinject、Unity、Castle Windsor、Structure Mapです)それらは同じ目標、つまり依存関係の解決にも使用されていました。しかし、どの場合に特定のフレームワークを使用すべきかわかりません!それらはほとんど似ています。主な違いを簡単に説明できるのは誰ですか?
3 に答える
それはあなたのニーズに依存します。一部のコンテナは非常に成熟しているか、大きなコミュニティを持っています。その他は、機能が豊富または非常に高速です。それはすべてあなたが必要とするものに依存します、しかし問題はあなたがすでにDIとDIコンテナを使って1つか2つのプロジェクトをしたときだけこれを知っているということです。それでも、アーキテクチャが変更されると、コンテナの要件が変更されます。
したがって、どのコンテナを選択する場合でも、コンテナを変更する準備をしてください。つまり、依存性注入パターンに固執し、アプリケーションコードがコンテナーに直接依存しないようにします(サービスロケーターと呼ばれるパターン)。
一人一人に致命的な欠陥があります。
もっと深刻なことに、それらは確かに本質的に同じことをしますが、実装の詳細、規則、パフォーマンス、補助機能、および推奨されるユースケースが異なります。
IoCコンテナを選ぶのに汗を流すべきではないと思います。慣れているものに固執し、コア機能を継続します。
DI / IOCまたはあなたがそれを呼びたいものは何でも、それ自体が目的ではなく、目的を達成するための手段です。あなたが好きなものを見つけてください、そしてそれはあなたが必要とするすべてをして、そしてそれで行きます(あなたが何か他のものを使うように言われるまで)。
私はStructureMapに基づいて自分自身を転がし、おそらく他のどれよりも実際にそれを行うことを学びました。