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:
- se puede implementar un modelo de seguridad más restringida
- 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).
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. –
+1! OO! buen nugget de información. –
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 –