Innholdsfortegnelse:
Definisjon - Hva betyr applikasjonsdomener?
Et applikasjonsdomen er en logisk isolasjonsgrense opprettet rundt .NET-applikasjoner slik at applikasjoner ikke får tilgang til eller påvirker hverandre. Det er en lett prosess som har sitt eget sett med innstillinger for kode, data og konfigurasjon. Applikasjonsdomener opprettes av runtime-vertene, som blir påkalt av vanlige språk runtime (CLR) for å laste inn applikasjonene som må utføres.
Før .NET var isolasjonsgrensen mellom applikasjoner prosessene de ble lastet inn i. Hver prosess hadde sitt eget private virtuelle minne og har ikke tilgang til minnet til en annen prosess direkte. Applikasjonsdomener har funksjoner som ligner på prosessen.
Applikasjonsdomener har følgende funksjoner:
- Optimal utnyttelse av systemressurser ved å bruke færre prosesser for å utføre flere applikasjoner.
- Pålitelighet ved å bruke isolasjon av oppgaver i situasjoner der data ikke kan deles og for ustabile oppgaver som må lastes ut uten å påvirke prosessen.
- Bedre effektivitet ved å utføre prosesser med lang kjøring som sjelden bruker store utvidelser med optimalt minne.
- Applikasjonssikkerhet ved å begrense direkte tilgang til koden som kjører i ett program fra koden eller ressursene til et annet program.
- Sikkerhetskontroll ved å spesifisere konfigurasjonsdetaljer for hvert applikasjonsdomen.
Techopedia forklarer Application Domain
Applikasjonsdomenet er forskjellig på den måten CLR laster inn og utfører flere .NET-applikasjoner i en enkelt prosess. Det tillater ikke direkte tilgang til minnet til lastede applikasjoner. Det administreres av CLR av .NET Framework mens en prosess administreres av OS. CLR gir feilisolering mellom applikasjonsdomener med mindre overhead enn prosesser, på grunn av dets iboende trekk å verifiserbar typesikkerhet for administrert kode. Flere tråder kan også oppholde seg i et applikasjonsdomener, de står fritt til å krysse applikasjonsdomenegrenser.
For eksempel er ASP.NET en runtime-vert som oppretter flere applikasjonsdomener for hver bruker som får tilgang til et nettsted. De kan også opprettes og konfigureres for applikasjoner som trenger å isolere kode eller for å laste utvidelser bare mens du bruker dem. Dette faktum gjør applikasjonsdomener nyttige i situasjoner der plugin-moduler og annen upålitelig kode brukes. De er også nyttige for å minimere det arbeidssettet med applikasjoner som bruker store DLL-er.
For å aktivere kommunikasjon mellom objekter i forskjellige applikasjonsdomener brukes en av følgende tre typer objekter:
- Marshal-By-Value: Komplett kopi av objektet som ble sendt til det anropende applikasjonsdomenet. Dette brukes når objektets tilstand kan flyttes av ytelsesgrunner.
- Marshal-By-Reference-Reference (MBR): En proxy av objektet sendes til klienten; brukes når tilstanden til objektet må holde seg innenfor applikasjonsdomenet.
- Kontekstbundet: MBR-objekt brukt på tvers av domener eller innenfor konteksten av sitt eget applikasjonsdomen.