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