私は DotNetNuke モジュールでレガシー コードに取り組んでおり、テスト フレームワークの下でクラスと動作を取得しようとしています。この機会に、「レガシー コードを効果的に使用する」という本からのアドバイスに従っています。徹底的にテストしてからサービスに変換できる領域を定義しようとしています。次に、IoC フレームワークを使用して動作させたいと思います。今のところ、Ninject に注目しています。
しかし、私は設計上の問題にぶつかっています。私は DotNetNuke モジュールにいるので、アプリケーション全体の構造を実際に変更することはできません。たとえば、NinjectHttpApplication からアプリケーションを派生させることはできません。SOからのこれらの提案も使用できません。モジュールがセットアップして使用する静的クラスにカーネルを配置することを考えていましたが、私が読んだことから、それは非常に悪い考えです。
そのため、最初から IoC をサポートするように設定されていないアプリケーションで IoC を使用できるかどうかを自問し始めています。リクエストごとに依存関係ツリー全体をロードする必要がある場合、レガシー コードをローカルで書き換えて IoC の恩恵を受けるにはどうすればよいですか? 非常にローカルな書き換えから IoC の使用が拡大するパターンはありますか?
私は DotNetNuke を使用していますが、独立したフレームワークにインストールできるスタンドアロン コンポーネントには、同じ疑問が生じます。また、特に Ninject をターゲットにしているわけではありません。この場合、別の IoC フレームワークが役立つ場合は、検討したいと思います。