Applikationsdomæne

Et applikationsdomæne  er en mekanisme implementeret i .NET , der giver dig mulighed for at køre en gruppe applikationer i en enkelt proces , hvilket giver dem relativ isolation fra hinanden, samtidig med at de tillader dem at kommunikere med hinanden meget hurtigere end i tilfælde af separate processer. I Win32 kan hver applikation bestå af en eller flere processer , som hver igen kan afføde en eller flere tråde , så for ikke-administreret kode er sandkassen processen alene, mens i .NET er sandkassen applikationsdomænet.

Domænet isolerer fuldstændigt de ressourcer, der bruges i det, fra andre domæner i samme proces.

En enkelt proces kan indeholde et vilkårligt antal applikationsdomæner, hver fuldstændig isoleret fra andre applikationsdomæner inden for den proces (såvel som enhver anden proces). Med dette i tankerne skal det forstås, at en applikation, der kører i et applikationsdomæne, ikke kan hente data (især værdierne af globale variabler eller statiske felter) fra et andet applikationsdomæne undtagen ved at bruge .NET-remoting-protokollen. .NET-platformen antager ikke en direkte en-til-en-korrespondance mellem applikationsdomæner og tråde. I modsætning hertil kan et applikationsdomæne have flere tråde, der kører inden for det pågældende domæne på ethvert givet tidspunkt. Desuden er en bestemt tråd ikke bundet til et enkelt applikationsdomæne i trådens levetid. Tråde kan krydse applikationsdomænegrænser, underlagt Win32 trådregler og CLR-hensigtsmæssighed. Men mens aktive tråde kan bevæge sig på tværs af applikationsdomænegrænser, kan én bestemt tråd til enhver tid kun køre inden for ét applikationsdomæne (med andre ord kan en tråd ikke køre i flere applikationsdomæner på samme tid).

Litteratur