Spisu treści:
Definicja - Co oznacza domena aplikacji?
Domena aplikacji to logiczna granica izolacji utworzona wokół aplikacji .NET, dzięki czemu aplikacje nie mają do siebie dostępu ani nie wpływają na siebie. Jest to lekki proces posiadający własny zestaw kodów, danych i ustawień konfiguracji. Domeny aplikacji są tworzone przez hosty środowiska wykonawczego, które są wywoływane przez środowisko uruchomieniowe języka wspólnego (CLR) w celu załadowania aplikacji, które należy wykonać.
Przed .NET granicą izolacji między aplikacjami były procesy, w których zostały załadowane. Każdy proces miał własną prywatną pamięć wirtualną i nie może uzyskać bezpośredniego dostępu do pamięci innego procesu. Domena aplikacji ma funkcje podobne do procesu.
Domeny aplikacji mają następujące funkcje:
- Optymalne wykorzystanie zasobów systemowych poprzez użycie mniejszej liczby procesów do wykonania wielu aplikacji.
- Niezawodność dzięki zastosowaniu izolacji zadań w sytuacjach, w których danych nie można udostępniać, oraz w przypadku niestabilnych zadań, które należy rozładować bez wpływu na proces.
- Większa wydajność dzięki wykonywaniu długotrwałych procesów, które rzadko wykorzystują duże rozszerzenia z optymalną pamięcią.
- Bezpieczeństwo aplikacji poprzez ograniczenie bezpośredniego dostępu do kodu działającego w jednej aplikacji z kodu lub zasobów innej aplikacji.
- Kontrola bezpieczeństwa poprzez określenie szczegółów konfiguracji dla każdej domeny aplikacji.
Techopedia wyjaśnia domenę aplikacji
Domena aplikacji różni się sposobem, w jaki CLR ładuje i wykonuje wiele aplikacji .NET w jednym procesie. Nie pozwala na bezpośredni dostęp do pamięci załadowanych aplikacji. Jest zarządzany przez CLR .NET Framework, podczas gdy proces jest zarządzany przez system operacyjny. CLR zapewnia izolację błędów między domenami aplikacji z mniejszym narzutem niż procesy, ze względu na jego nieodłączną cechę weryfikowalnego bezpieczeństwa typu zarządzanego kodu. Ponadto wiele wątków może znajdować się w domenie aplikacji, mogą swobodnie przekraczać granice domeny aplikacji.
Na przykład ASP.NET to host środowiska wykonawczego, który tworzy wiele domen aplikacji dla każdego użytkownika uzyskującego dostęp do strony internetowej. Można je również tworzyć i konfigurować dla aplikacji, które muszą izolować kod lub ładować rozszerzenia tylko podczas ich używania. Ten fakt sprawia, że domeny aplikacji są przydatne w sytuacjach, w których używane są wtyczki i inny niezaufany kod. Są również przydatne w minimalizowaniu roboczego zestawu aplikacji korzystających z dużych bibliotek DLL.
Aby umożliwić komunikację między obiektami w różnych domenach aplikacji, używany jest jeden z następujących trzech typów obiektów:
- Marshal-By-Value: pełna kopia obiektu przekazana do domeny aplikacji wywołującej. Jest to używane, gdy stan obiektu można przenieść ze względu na wydajność.
- Marshal-By-Reference-Reference (MBR): proxy obiektu jest przekazywane do klienta; używane, gdy stan obiektu musi pozostać w domenie aplikacji.
- Kontekstowy: Obiekt MBR używany w domenach lub w kontekście własnej domeny aplikacji.