IoC и DI Framework для приложений .Net - PullRequest
2 голосов
/ 02 июня 2010

Не могли бы вы объяснить, как следующие три отличаются по своему намерению?

1) Блок приложения внедрения политики

2) Структура карты IoC

3) Структура управляемой расширяемости

С точки зрения общих задач, которые они выполняют, что проще / согласовано с обобщениями и C # 3.0?

Спасибо

Lijo

1 Ответ

4 голосов
/ 07 июня 2010

Три библиотеки каркаса имеют разные отступы, но часть функциональности пересекаются друг с другом.

  1. Блок приложения внедрения политики: в основном это структура для интеграции сквозных задач в ваше приложение. Например, реализовать регистрацию методов, не касаясь исходного класса. Таким образом, он обеспечивает функциональность аспектно-ориентированного программирования.
  2. Карта Structur IoC: Карта Structur представляет собой Инкорпорация зависимостей / Инверсия контейнера управления . Главная цель здесь состоит в том, чтобы построить и соединить объекты чистым способом. Это должно привести к коду, который легче тестировать и понимать.
  3. MEF - это система расширений. Его главная цель - предоставить механизм плагинов, где множество компонентов и плагинов могут регистрироваться и обнаруживать друг друга. (например, дополнения к visual-studio).

Каждая библиотека имеет разную направленность. Но часто части этой библиотеки пересекаются. Например.

  • Множество каркасов внедрения зависимостей обеспечивают некоторые аспектно-ориентированные возможности программирования, такие как блок приложения внедрения политик. Но это не фокус и, следовательно, не такой мощный.
  • MEF использует принципы, очень похожие на большинство IoC-контейнеров (например, Structure Map). И на самом деле это тоже IoC-контейнер. Но основное внимание уделяется соединению компонентов.

Например:

  • Вы хотите реализовать сквозные задачи, такие как ведение журнала, безопасность и т. Д. Используйте блок приложения Policy Injection
  • Вы хотите хорошо структурировать свое приложение, чтобы его можно было тестировать и было легче понять? IoC-контейнер, такой как StructureMap, может помочь
  • Вы хотите построить плагин-модель для своего приложения? Возьми MEF.

И, конечно, вы можете смешивать эти технологии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...