Домен приложения - Application domain

An домен приложения это механизм (похожий на процесс в Операционная система ) используется в Инфраструктура общего языка (CLI) изолировать выполненный программные приложения друг от друга, чтобы они не влияли друг на друга. Каждый домен приложения имеет свой виртуальное адресное пространство который объемы ресурсы для домена приложения, использующие это адресное пространство.

Характеристики

Домен приложения CLI содержится в процессе операционной системы. Процесс может содержать множество доменов приложений. Домены приложений имеют свойства изоляции, аналогичные свойствам процессов операционной системы:

  • Несколько потоки могут существовать в пределах одного домена приложения.
  • Приложение внутри домена можно остановить, не влияя на состояние другого домена в том же процессе.
  • Ошибка или исключение в одном домене не влияет на приложение в другом домене и не приводит к сбою всего процесса, в котором размещены домены.
  • Информация о конфигурации является частью области действия домена, а не области действия процесса.
  • Каждому домену можно назначить разные уровни доступа.
  • Код в одном домене не может напрямую обращаться к коду в другом.

В этом смысле интерфейс командной строки похож на мини-операционную систему. Он запускает один процесс, содержащий несколько подпроцессов или доменов приложений.

Преимущество доменов приложений состоит в том, что для запуска нескольких доменов приложений может потребоваться меньше ресурсов, таких как память, чем для выполнения нескольких процессов операционной системы. Связь между доменами по-прежнему требует маршалинга, поэтому накладные расходы могут быть ближе к использованию нескольких процессов, чем к обмену данными внутри одного домена.

Междоменные коммуникации

Прямая связь не может быть достигнута между доменами приложений. Однако домены приложений все еще могут взаимодействовать друг с другом, передавая объекты через сортировка по значению (несвязанные объекты), маршаллинг по ссылке через прокси (объекты, привязанные к домену приложения). Существует третий тип объектов, называемых контекстно-привязанными объектами, которые можно упорядочивать по ссылке между доменами, а также в контексте своего собственного домена приложения. Из-за проверяемого безопасность типа из управляемый код, интерфейс командной строки может обеспечить изоляцию сбоев между доменами с гораздо меньшими затратами, чем процесс операционной системы. Проверка статического типа, используемая для изоляции, не требует тех же переключателей процессов или аппаратных кольцевых переходов, которые требуются процессу операционной системы.

Управляемый код

Домены приложений - это чисто управляемый код концепция. Любые включены родные / неуправляемый код (например, C ++) в основном о них не знает. Статические переменные, похоже, используются в разных доменах, обратные вызовы могут быть проблематичными, а любые ошибки повреждения памяти в одном домене могут повредить другие домены.

Рекомендации