Оглавление
Область применения
-
Основы доменов приложений
- Домены приложений – это механизм изоляции в CLI для предотвращения влияния приложений друг на друга.
- Каждый домен имеет собственное виртуальное адресное пространство для распределения ресурсов.
- В .NET Core и .NET 5+ создание нескольких доменов в одном процессе невозможно.
-
Свойства доменов приложений
- Домены приложений содержатся в процессе операционной системы и могут содержать несколько прикладных областей.
- Домены обладают свойствами изоляции, аналогичными процессам операционной системы.
- В пределах одного домена могут существовать несколько потоков, и приложение может быть остановлено без влияния на другие домены.
- Ошибка или исключение в одном домене не влияют на другие домены и процесс в целом.
- Информация о конфигурации является частью домена, а не процесса.
- Каждому домену могут быть назначены разные уровни доступа безопасности.
- Код в одном домене не может напрямую обращаться к коду в другом.
-
Преимущества и связь между доменами
- Запуск нескольких доменов приложений требует меньше ресурсов, чем запуск нескольких процессов операционной системы.
- Связь между доменами осуществляется через сортировку объектов или через прокси-сервер.
- Существует третий тип объектов, контекстно-привязанный, который может быть распределен между доменами и в контексте своего собственного домена.
-
Изоляция сбоев и управляемый код
- Интерфейс командной строки обеспечивает изоляцию сбоев между доменами с меньшими затратами, чем процессы операционной системы.
- Статическая проверка типа используется для изоляции, не требуя переключений процессов или аппаратных кольцевых переходов.
- Домены приложений являются чисто управляемой концепцией кода, и собственный/неуправляемый код не знает о них.
-
Рекомендации
- Microsoft Developer Network предоставляет информацию о доменах приложений.
- Существуют проблемы с неуправляемыми обратными вызовами в доменах приложений.
Полный текст статьи: