1. ホーム
  2. c#

[解決済み] どの.NET Dependency Injectionフレームワークが調べる価値がありますか?[クローズド]

2022-03-25 23:55:24

質問

どのC#/.NET Dependency Injectionフレームワークに注目する価値がありますか? また、その複雑さとスピードについて何か言うことはできますか。

どのように解決するのですか?

編集 (筆者によるものではありません)。IoCフレームワークの包括的なリストは、以下のサイトにあります。 https://github.com/quozd/awesome-dotnet/blob/master/README.md#ioc :

  • ウィンザー城 - Windsorは、.NETとSilverlightで利用可能な成熟したInversion of Controlコンテナのベスト・オブ・ブリードです。
  • ユニティ - 軽量で拡張性の高い依存性注入コンテナ。コンストラクタ、プロパティ、メソッド呼び出しの注入をサポート。
  • オートファック - やみつきになる.NET IoCコンテナ
  • ドライイオク - シンプルで高速な、すべての機能を備えたIoCコンテナです。
  • ニンジェクト - .NET依存性インジェクタの忍者
  • Spring.Net - Spring.NETは、エンタープライズ.NETアプリケーションの構築を容易にする、オープンソースのアプリケーションフレームワークです。
  • ラマ - ASP.NET Coreやその他の.NETサーバーサイドアプリケーションで使用するために最適化された高速IoCコンテナです。
  • ライトインジェクション - 超軽量なIoCコンテナ
  • 簡易インジェクタ - Simple Injectorは、Silverlight 4+、Windows Phone 8、Windows 8(ユニバーサルアプリを含む)、Monoをサポートする、.NET 4+用の使いやすい依存性注入(DI)ライブラリです。
  • マイクロソフト.エクステンション.ディペンデンシーインジェクション - ASP.NET CoreアプリケーションのデフォルトのIoCコンテナです。
  • スクリプター - Microsoft.Extensions.DependencyInjectionのためのアセンブリスキャン拡張。
  • VS MEF - Visual Studio で使用される MEF (Managed Extensibility Framework) の実装です。
  • タイニーIoC - 小規模なプロジェクトやライブラリ、初心者でも簡単に使える、手間のかからないInversion of Controlコンテナです。
  • スタッシュボックス - .NETベースのソリューションのための、軽量、高速、ポータブルな依存性注入フレームワークです。

オリジナルの回答は以下の通りです。


しかし、DI(Dependency Injection)はプログラミングパターンのひとつであり、IoC(Inversion of Control)フレームワークによって促進されますが、必要なわけではありません。IoCフレームワークは、DIをより簡単にし、DI以上に多くの利点を提供するものです。

そう言われてみれば、そういうご質問もありましたね。IoCフレームワークについて;以前は スプリングネット キャッスルウインザー しかし、本当に面倒だったのは、XMLの設定を書かなければならなかったことです。今はほとんどこの方法に移行しているので、私は 構造マップ この 1 年ほどで、強く型付けされたジェネリックとレジストリを使った流暢なコンフィグに移行したので、IoC を使う上での苦痛の障壁はゼロ以下になりました! IoC の設定はコンパイル時にチェックされますし、StructureMap とその速度には喜びしか感じません。他のものが実行時に遅いとは言いませんが、セットアップがより困難で、しばしばフラストレーションが勝りました。

更新情報

今まで使っていた ニンジェクター 私の最新のプロジェクトで、この製品を使用するのは本当に楽しいことです。ここではちょっと言葉が足りませんが、(イギリスで言うところの)このフレームワークは「ザ・ドッグス」なのです。素早く立ち上げたいグリーン・フィールド・プロジェクトには、ぜひお勧めしたいです。私は、必要なものをすべて Ninjectのスクリーンキャストのファンタスティックセット Justin Etheredgeによるものです。既存のコードにNinjectを後付けすることは全く問題ないように思えるが、同じことが 構造マップ 私の経験では この2つのどちらを選ぶかは難しいところですが、停滞するよりは競争があったほうがいいと思いますし、健全な競争はちゃんとありますよ。

その他のIoCスクリーンキャストもご覧いただけます。 Dimecastsではこちら .