Obsah:
Definice - Co znamená aplikační doména?
Doména aplikace je hranice logické izolace vytvořené kolem aplikací .NET, takže aplikace se navzájem nepřistupují ani neovlivňují. Jedná se o proces s nízkou hmotností, který má vlastní sadu nastavení kódu, dat a konfigurace. Aplikační domény jsou vytvářeny hostiteli runtime, které jsou vyvolány běžným jazykem runtime (CLR) pro načtení aplikací, které je třeba spustit.
Před .NET byla izolační hranice mezi aplikacemi procesy, ve kterých byly načteny. Každý proces měl svou vlastní virtuální virtuální paměť a nemůže přímo přistupovat k paměti jiného procesu. Aplikační doména má funkce podobné vlastnostem procesu.
Aplikační domény mají následující vlastnosti:
- Optimální využití systémových prostředků pomocí méně procesů k provádění více aplikací.
- Spolehlivost pomocí izolace úkolů v situacích, kdy data nelze sdílet, a nestabilních úkolů, které je třeba uvolnit bez ovlivnění procesu.
- Lepší účinnost prováděním dlouhodobých procesů, které jen zřídka používají velká rozšíření s optimální pamětí.
- Zabezpečení aplikace omezením přímého přístupu ke kódu spuštěnému v jedné aplikaci z kódu nebo zdrojů jiné aplikace.
- Řízení bezpečnosti zadáním podrobností o konfiguraci pro každou doménu aplikace.
Techopedia vysvětluje aplikační doménu
Aplikační doména se liší ve způsobu, jakým CLR načítá a provádí více .NET aplikací v jednom jediném procesu. To neumožňuje přímý přístup do paměti načtených aplikací. Je řízen CLR .NET Framework, zatímco proces je řízen OS. CLR poskytuje izolaci poruch mezi aplikačními doménami s méně režijními náklady než procesy, a to díky své vlastní vlastnosti ověřitelné bezpečnosti typu spravovaného kódu. V aplikační doméně může také být umístěno více vláken, mohou volně překračovat hranice aplikační domény.
Například ASP.NET je hostitelský hostitel, který vytváří více aplikačních domén pro každého uživatele, který přistupuje na web. Lze je také vytvářet a konfigurovat pro aplikace, které potřebují izolovat kód nebo načíst rozšíření pouze při jejich používání. Díky této skutečnosti jsou aplikační domény užitečné v situacích, kdy se používají doplňky a jiný nedůvěryhodný kód. Jsou také užitečné při minimalizaci pracovní sady aplikací, které používají velké knihovny DLL.
K povolení komunikace mezi objekty v různých aplikačních doménách se používá jeden z následujících tří typů objektů:
- Marshal-By-Value: Kompletní kopie objektu předaného do volající aplikační domény. To se používá, když lze stav objektu přesunout z důvodů výkonu.
- Marshal-By-Reference-Reference (MBR): proxy objektu je předán klientovi; používá se, když stav objektu musí zůstat v aplikační doméně.
- Kontextové: MBR objekt používaný napříč doménami nebo v kontextu vlastní aplikační domény.
