2009-10-28 10 views

Respuesta

7

El escenario más común que he visto es poder brindar extensibilidad con un modelo de seguridad diferente al del programa principal.

Carga de un plug-in en un dominio de aplicación independiente permite dos cosas:

  1. se puede implementar un modelo de seguridad más restringida
  2. Puede evitar que el plug-in de derribar su solicitud si se trata de cochecillo

Otro buen uso de AppDomains es cargar e inspeccionar un ensamblaje. Hacer esto en un AppDomain separado le permite obtener información (o ejecutar código) de un ensamblaje separado, luego descargar todo el ensamblaje del espacio de su proceso. Si carga el conjunto directamente, no hay forma de descargarlo. Esto también es útil si desea poder, en tiempo de ejecución, "actualizar" un tipo a una nueva versión (es decir, cargar un ensamblaje remoto y volver a cargarlo más adelante).

+0

Estoy bastante seguro de que cargar un complemento defectuoso en un dominio de aplicación separado no puede evitar que el complemento bloquee su aplicación: una excepción no controlada reducirá el dominio de la aplicación y en consecuencia terminará todo el proceso. –

+0

+1! OO! buen nugget de información. –

+3

Depende de cómo hagas las cosas. Es posible configurar un dominio de aplicación para que derribarlo no destruya el proceso. Consulte el primer beneficio enumerado en http://msdn.microsoft.com/en-us/library/2bh4z9hs.aspx –

3

Un ejemplo típico es para casos de complementos/complementos. No solo le permite descargar el DLL si es necesario, sino que también le brinda un mejor control de seguridad sobre lo que el plugin puede hacer.

Además, si crea conjuntos temporales (generación de código) que desea volver a descargar, esta es una buena manera de hacerlo. (LCG solo permite implementar métodos únicos; si desea implementar una clase completa, debe emitir a un ensamblado "real").

5

Se recomienda crear un nuevo dominio cuando necesite alojar componentes de terceros en su aplicación que no sean confiables o que no confíe en ellos (como complementos) o que desee poder descargarlos.

Cuestiones relacionadas