Ответ 1
Dan,
разница заключается в следующем:
- установщики предназначены для инкапсуляции дискретных единиц регистрации. Другими словами, вы используете установщиков для регистрации компонентов приложения в контейнере.
Для этого используются помощники класса
Configuration
илиFromAssembly
, которые можно использовать для использования файла конфигурации или для автоматического обнаружения ваших установщиков и запуска их всех за один раз, потому что в большинстве приложений у вас будет несколько из них. Средства - предназначены для расширения возможностей контейнера из коробки. Таким образом, у вас есть (с использованием стандартных возможностей в качестве примеров) такие вещи, как
TypedFactoryFacility
, который добавляет возможность автоматического создания заводов для прозрачного вытягивания компонентов из контейнера. У вас естьStartableFacility
, который позволяет запускать/останавливать компоненты без необходимости явно беспокоиться об этом. У вас также есть возможности интеграции для таких вещей, как NHibernate или WCF, или Monorail или ASP.NET MVC, которые заставляют Windsor знать о некоторых аспектах других фреймворков, с которыми он работает, чтобы ваша работа была проще. С точки зрения возможностей объекты могут иметь собственную конфигурацию. Также нет помощников для добавления дополнительных функций, так как в большинстве приложений вам потребуется всего несколько.
Оба из них могут регистрировать материал, но основное различие заключается в том, что установщики регистрируют все ваши приложения (включая добавочные средства). Услуги, с другой стороны, регистрируют то, что им нужно, чтобы выполнять свою работу.
Это обычно означает, что объекты регистрируют расширения в контейнере, такие как пользовательские резольверы, вкладчики компонентов или перехватчики ComponentModel - вещи, которые по определению знают о контейнере.
Установщики регистрируют компоненты уровня приложения, которые лучше всего не знают о контейнере.
Надеюсь, что делает различие более ясным.