Домены и сборки
Перед запуском приложения вы должны загрузить сборку в домен. Запуск типичного приложения вызывает загрузку различных сборок в программный домен. По умолчанию, CLR загружает сборку в домен, который содержит ссылку на нее. Таким образом, код и данные сборки изолируются от использующего его приложения.
Если одна и та же сборка используется несколькими доменами, ее код (но не данные) могут разделяться доменами. Это уменьшает затраты памяти. Этот метод подобен разделению DLL. Сборка называется доменно-нейтральной, если ее код может разделяться другими доменами в одном процессе. CLR решает, будет ли сборка доменно-нейтральной.
Сборка не разделяется между доменами, если предоставляемые ею возможности нужны лишь одному домену.