Відповідь ДжаредПара хороша, за винятком того, що він не відзначає причини існування для AppDomains - це означає, що ви можете РАЗГРУЗИТИ асамблею, розвантаживши її AppDomain. Якщо у вас тривалий процес ОС, і ви очікуєте, що доведеться завантажувати, а потім вивантажувати збірки з будь-якої причини, тоді вам потрібен AppDomain. Прикладом прототипу тут є ASP.NET, який завантажує збірки коду програм на вимогу, а потім може вивантажити їх пізніше, коли програми більше не використовуються активно.
Вартість, яку ви платите за можливість розвантаження, полягає в цій незалежності - вам потрібно спілкуватися через межу AppDomain. Не вдається здійснити простий виклик методу. Вам потрібно керувати життєвим циклом AppDomain. І т.д.
Якщо вам просто потрібно динамічно завантажувати Асамблеї і не думаєте, що вам потрібно буде їх вивантажувати протягом життя одного процесу, то вам, ймовірно , не потрібно запускати кілька AppDomains. Хорошим прикладом тут може бути розширений додаток, що підтримує модель плагіна, де він винюхує модулі плагінів у каталозі "etc" і завантажує їх усі. Однак, якщо модель плагіна вимагає вивантаження плагінів ... ну.
Існують випадкові сценарії. Мовляв, припустимо, ви хочете завантажити одночасно 2 різні версії збірки. Ви можете натрапити на підводні камені, якщо не розділити їх на AppDomains. Але це буде досить рідко.
Основним сценарієм, який виправдовує існування AppDomains, є тривалий процес, який повинен мати можливість розвантажувати збірки.
Звичайно, програми можуть покладатися на процес ОС, коли ви хочете вивантажити збірку. Іншими словами, у вас може бути запущено 3 або 4 взаємодіючих процеси, кожна з яких має свій власний набір збірок, і коли ви хочете вивантажити збірку, просто вимкніть процес, що розміщує цю збірку. Але AppDomain пропонує більш ефективний механізм для цього, не вимагаючи зупинки / запуску або перехресного обміну повідомленнями, що все ще важче, ніж перехресне сполучення AppDomain, описане раніше. Я маю на увазі, що це все ще віддалено, але це повільніше і перемикання контексту.