c# - 使い方 - どの.NET Dependency Injectionフレームワークを検討する価値がありますか?




unity di (8)

C#の素晴らしいところは、それが何年も前のJava開発者によって打たれた道をたどっているということです。 そのため、この種のツールを探すときに一般的に言えば、私のアドバイスは、堅実なJavaの答えを探して、.NETへの適応がまだあるかどうかを確認することです。

したがって、DIに関して言えば(そしてそこにはたくさんの選択肢がありますが、これは実際には好みの問題です)、 Spring.Net です。 さらに、プロジェクトの背後にいる人々を調査することは常に賢明です。 私はEric Sinkを尊重しているので、SourceGear製品をソース管理用に使用すること以外は問題ありません。 Mark Pollackが話すのを見たことがありますが、私は何を言えるのでしょうか。

最後に、たくさんのDIフレームワークがあります、そしてあなたの最善の策はそれらのいくつかでいくつかのサンプルプロジェクトをして教育を受けた選択をすることです。

がんばろう!

どのC#/。NET依存性注入フレームワークを検討する価値がありますか? そして、それらの複雑さとスピードについてあなたは何を言えるでしょうか。


Spring.Netは非常に堅実ですが、ドキュメントは少し時間がかかりました。 Autofacは優れており、.NET 2.0がサポートされていますが、コンパイルするにはVS 2008が必要です。それ以外の場合は、コマンドラインを使用してアプリをビルドします。


それぞれ長所と短所があるので、それはあなたが探しているものに依存します。

  1. Spring.NET は、Javaの世界から Spring.NET で、最も成熟しています。 Springは、Web、Windowsなどをサポートするためにそれを拡張する非常に豊富なフレームワークライブラリを持っています。
  2. Castle Windsor は、.NETプラットフォームで最も広く使用されているものの1つであり、最大のエコシステムを持ち、高度に設定可能/拡張可能で、カスタムライフタイム管理、AOPサポート、NHibernateサポートを備え、万能のコンテナです。 WindsorはMonorail、Active Recordなどを含むスタック全体の一部です。NHibernate自体はWindsorの上に構築されています。
  3. Structure Map は、内部DSLを介して非常に豊富できめ細かい構成を持っています。
  4. Autofac は新しい時代のIoCコンテナであり、そのすべてが固有の関数型プログラミングサポートを備えています。 それはまた、他のものとは寿命を管理するのに異なるアプローチを取ります。 Autofacはまだ非常に新しいですが、それはIoCで何が可能であるかについてのバーを押します。
  5. 私がこれまでに聞いたことのない人は、もっと素朴で骨のある方が多いと思います(経験がないと聞かれる)。
  6. Unity の最大の差別化 Unity は、Microsoftによるものであり、Microsoftによってサポートされていることです(p&p)。 Unityは非常に優れたパフォーマンスと優れたドキュメンテーションを持っています。 それはまた高度に設定可能です。 それは言う城/構造図のすべての鐘と笛を持っていません。

要約すると、それは本当にあなたにとって何が重要かにかかっています。 私は他の人たちと意見を交わし、評価し、どれが適しているかを見ます。 いいことは、ゼリーを1つ用意するのではなく、ドーナツを豊富に取り揃えていることです。



私はCastleの大ファンです。 IoC Containerの話以外にも提供されている機能が大好きです。 それは本当にNHibernate、ロギング、AOPなどを使うことを Binsor します。私はまたBooとの設定のために Binsor を使います、そしてそれゆえに言語としてBooと恋に落ちました。


私はNinjectを推薦できます。 それは信じられないほど速くそして使いやすいです、しかしあなたがXML設定を必要としない場合だけ、そうでなければあなたはウィンザーを使うべきです。


私は過去に Spring.Net を使用していて、 Spring.Net 大成功を収めました。 私達がそれを使用したプロジェクトはそれ自身でかなり重いものでしたが、私はそれによるいかなる実質的なオーバーヘッドにも気づきませんでした。 それをセットアップするために documentation を読むのに少し時間がかかりました。


Simple Injector を使います。

Simple Injectorは、ベストプラクティスを使用してソリューションを成功へと導くための、簡単で柔軟で高速な依存性注入ライブラリです。





inversion-of-control