Есть множество применений. Вторичный домен AppDomain может обеспечивать степень изоляции, аналогичную изоляции, которую ОС предоставляет процессам.
Одним из практических применений, для которого я использовал его, является динамическая загрузка подключаемых библиотек DLL. Я хотел поддержать сканирование каталога на наличие DLL при запуске основного исполняемого файла, загрузку их и проверку их типов, чтобы увидеть, реализует ли какой-либо конкретный интерфейс (т. Е. Контракт плагина). Без создания вторичного AppDomain у вас нет возможности выгрузить DLL / сборку, которая может не иметь никаких типов, которые реализуют требуемый интерфейс. Вместо того, чтобы переносить дополнительные сборки и типы и т. Д. В своем процессе, вы можете создать вторичный домен приложений, загрузить туда сборку и затем изучить типы. Когда вы закончите, вы можете избавиться от вторичного AppDomain и, следовательно, ваших типов.