Hoofdstuk 8 - Les 1

Een application domain is een container die het mogelijk maakt om meerdere assemblies uit te voeren binnen een proces. Daarbij voorkomt een application domain dat de assemblies geen geheugen gebruikt dat bij andere assemblies hoort. Daarnaast biedt het volledige isolatie. Dit betekent dat niet afgehandelde exceptions geen invloed hebben op andere application domains. Nog een voordeel van een application domain is dat elk application domain een ander security access level kan hebben.



Als een assembly is geladen in de standaard application domain, dan kan de assembly niet uit het geheugen worden gehaald als het proces nog aan het uitvoeren is.

Binnen het .NET framework kan met de System.AppDomain class een application domain aangemaakt worden.
AppDomain d = AppDomain.CreateDomain("NewDomain");

Console.WriteLine("Host domain: " + AppDomain.CurrentDomain.FriendlyName);
Console.WriteLine("Child domain: " + d.FriendlyName);
Een assembly starten binnen een application domain werkt als volgt:
AppDomain d = AppDomain.CreateDomain("NewDomain");
d.ExecuteAssembly("Assembly.exe");

// Als er een reference is toegevoegd aan de assembly kan die aangeroepen worden door de naam
d.ExecuteAssemblyByName("Assembly");
Het voordeel van het inladen van assembly's in een application domain is dat de application domein ook weer uit het geheugen gehaald kan worden zodat er weer resources vrijkomen.
AppDomain d = AppDomain.CreateDomain("NewDomain");
AppDomain.Unload(d);

Reacties

Populaire posts van deze blog

[SQL Server] varchar vs nvarchar

MS Sql 70-461: Chapter 5

[C#] Class serialiseren en deserialiseren