Applikationsdomän

En applikationsdomän  är en mekanism implementerad i .NET som låter dig köra en grupp applikationer i en enda process , vilket ger dem relativ isolering från varandra, samtidigt som de låter dem kommunicera med varandra mycket snabbare än i vid separata processer. I Win32 kan varje applikation bestå av en eller flera processer , som var och en i sin tur kan skapa en eller flera trådar , så för ohanterad kod är sandlådan enbart processen, medan i .NET är sandlådan applikationsdomänen.

Domänen isolerar helt de resurser som används inom den från andra domäner i samma process.

En enskild process kan innehålla valfritt antal applikationsdomäner, var och en helt isolerad från andra applikationsdomäner inom den processen (liksom vilken annan process som helst). Med detta i åtanke bör det förstås att en applikation som körs i en applikationsdomän inte kan hämta data (särskilt värdena för globala variabler eller statiska fält) från en annan applikationsdomän förutom genom att använda .NET-fjärrprotokollet. .NET-plattformen förutsätter inte en direkt en-till-en-korrespondens mellan applikationsdomäner och trådar. Däremot kan en applikationsdomän ha flera trådar som körs inom den domänen vid varje given tidpunkt. Dessutom är en viss tråd inte bunden till en enda applikationsdomän under trådens livstid. Trådar kan passera applikationsdomängränser, med förbehåll för Win32 trådregler och CLR lämplighet. Men medan aktiva trådar kan röra sig över applikationsdomängränser, kan en viss tråd vid varje given tidpunkt endast köras inom en applikationsdomän (med andra ord, en tråd kan inte köras i flera applikationsdomäner samtidigt).

Litteratur