Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Домены приложений .NET



Теперь, когда известно, какую роль играют процессы Win32 и как с ними взаимодействовать из управляемого кода, необходимо разобраться с тем, что собой представляет понятие домена приложения в.NET. В.NET исполняемые файлы не обслуживаются прямо внутри процесса (как это происходит в традиционных приложениях Win32). Вместо этого исполняемый файл.NET обслуживается в рамках отдельного логического раздела внутри процесса, который и называется доменом приложения (Application Domain — AppDomain). Как будет показано позже, в единственном процессе может содержаться несколько доменов приложений, обслуживающих свои исполняемые файлы.NET. Такое дополнительное разделение традиционного процесса Win32 обеспечивает ряд преимуществ, часть из которых перечислено ниже.

• Домены приложений играют ключевую роль в обеспечении нейтральности

платформы.NET к операционной системе, поскольку такое логическое деление

стирает отличия касательно того, каким образом базовая операционная система

представляет загружаемый исполняемый файл.

• Домены приложений являются гораздо менее дорогостоящими в плане

потребления вычислительных ресурсов и памяти по сравнению с полноценными

процессами. Благодаря этому CLR-среде удается загружать и выгружать домены

приложений намного быстрее, чем формальные процессы.

• Домены приложений обеспечивают более глубокий уровень изоляции для

обслуживания загружаемого приложения. В случае выхода из строя какого-то одного

домена приложения внутри процесса, остальные домены приложений остаются

работоспособными.

Из приведенного выше списка основных преимуществ, становится понятно, что один

процесс может обслуживать любое количество доменов, каждый из которых совершенно

и полностью изолируется от всех остальных доменов приложения внутри самого этого

процесса (и внутри любого другого процесса). Из-за этого следует очень четко понимать,

что приложение, выполняющееся в одном домене приложения, не может получать

данные никакого рода (глобальные перемененные или статические поля) из другого домена приложения, кроме как за счет использования какого-нибудь протокола

распределенного программирования (такого как Windows Communication Foundation).

Хотя один процесс и может обслуживать множество доменов приложений, обычно

такого не происходит. Как минимум, процесс ОС всегда обслуживает так называемый

домен приложения по умолчанию (default application domain). Этот специальный домен

приложения создается автоматически самой CLR-средой во время запуска процесса.

После этого CLR-среда создает все остальные дополнительные домены приложений по

мере необходимости. В случае возникновения такой потребности (которая вряд ли будет

часто возникать при разработке.NET-приложений), домены приложений можно

создавать программно во время выполнения внутри определенного процесса с помощью

статических методов класса System.AppDomain. Этот класс также очень полезен для

низкоуровневого управления доменами приложений. Наиболее важные члены этого класса перечислены в табл. 1.

Таблица 1. Некоторые члены класса AppDomain

Вдобавок тип AppDomain поддерживает небольшой набор событий, которые отражают различные аспекты жизненного цикла домена приложения; все они перечислены в табл. 2

.

Таблица 2. События типа AppDomain





Дата публикования: 2015-07-22; Прочитано: 227 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...