Самый распространенный сценарий, который я видел, - это возможность обеспечить расширяемость с помощью другой модели безопасности, нежели основная программа.
Загрузка плагина в отдельном домене приложений позволяет выполнять две вещи:
- Вы можете реализовать более ограниченную модель безопасности
- Вы можете предотвратить разрыв приложения в плагине, если он глючит
Еще одно полезное использование доменов приложений - загрузка и проверка сборки. Выполнение этого в отдельном домене приложений позволяет вам получать информацию (или запускать код) из отдельной сборки, а затем выгружать всю сборку из пространства вашего процесса. Если вы загружаете сборку напрямую, выгрузить ее невозможно. Это также полезно, если вы хотите иметь возможность во время выполнения «обновить» тип до новой версии (т.е. загрузить удаленную сборку и перезагрузить ее позже).