2011-03-04 15 views

Respuesta

17

Dan,

la diferencia es la siguiente:

  • instaladores están destinadas a encapsular unidades discretas de registro. En otras palabras, usted usa instaladores en , registra los componentes de aplicación en el contenedor. Hay ayudantes para eso como clase Configuration, o FromAssembly clase que puede usar para usar el archivo de configuración, o para autodetectar sus instaladores y ejecutarlos de una vez porque en la mayoría de las aplicaciones tendrá varios de ellos.
  • Las instalaciones están destinadas a aumentar las capacidades listas para usar del contenedor. Entonces tiene (usando instalaciones estándar como ejemplos) cosas como TypedFactoryFacility que agrega la capacidad de crear fábricas automáticamente para extraer componentes del contenedor. Tiene StartableFacility que permite que los componentes sean iniciados/detenidos sin tener que preocuparse explícitamente por ello. También tiene instalaciones de integración para cosas como NHibernate o WCF, o Monorail, o ASP.NET MVC que hacen que Windsor esté al tanto de ciertos aspectos de otros marcos con los que trabaja para que su trabajo sea más fácil. En términos de capacidades, las instalaciones pueden tener su propia configuración. Tampoco hay ayudantes para agregar instalaciones por lotes, ya que en la mayoría de las aplicaciones solo necesitarás unas pocas.

Ambos pueden registrar cosas, pero la principal diferencia es que los instaladores registran lo que necesite su aplicación (incluidas las instalaciones de adición). Las instalaciones, por otro lado, registran lo que necesitan para hacer su trabajo.

Eso normalmente significa que las instalaciones registran extensiones en el contenedor como los solucionadores personalizados, los contribuidores de la construcción ComponentModel o los interceptores, cosas que por definición conocen el contenedor.

Los instaladores registran los componentes del nivel de aplicación que mejor no conocen el contenedor.

Espero que haga la distinción más clara.