Sadržaj:
Definicija - Što znači domena aplikacije?
Domena aplikacije je granica logičke izolacije stvorena oko .NET aplikacija tako da aplikacije ne pristupaju ili utječu jedna na drugu. To je lagan postupak koji ima svoj skup koda, podataka i postavki konfiguracije. Domene aplikacija kreiraju domaćini runtime-a na koje se poziva zajedničko vrijeme izvođenja (CLR) radi učitavanja aplikacija koje je potrebno izvršiti.
Prije .NET, izolaciona granica između aplikacija bili su procesi u kojima su one bile učitane. Svaki je postupak imao svoju privatnu virtualnu memoriju i ne može izravno pristupiti memoriji drugog procesa. Domena aplikacije ima značajke slične onima u procesu.
Domene aplikacija imaju sljedeće značajke:
- Optimalno korištenje resursa sustava korištenjem manje procesa za izvršavanje više aplikacija.
- Pouzdanost korištenjem izolacije zadataka u situacijama kada se podaci ne mogu dijeliti i za nestabilne zadatke koje je potrebno istovariti bez utjecaja na proces.
- Veća učinkovitost izvršavanjem dugotrajnih procesa koji rijetko koriste velika proširenja s optimalnom memorijom.
- Sigurnost aplikacije ograničavajući izravni pristup kôdu koji radi u jednoj aplikaciji iz koda ili resursa druge aplikacije.
- Kontrola sigurnosti određivanjem podataka o konfiguraciji za svaku aplikacijsku domenu.
Techopedia objašnjava Application Domain
Domena aplikacije razlikuje se u načinu na koji CLR učitava i izvršava više .NET aplikacija u jednom jedinom procesu. Ne dopušta izravan pristup memoriji učitanih aplikacija. Njime upravlja CLR .NET Framework dok procesom upravlja OS. CLR pruža izolaciju grešaka između domena aplikacije s manje nadzemnih troškova nego procesa, zbog svojstvene značajke provjerljive vrste sigurnosti upravljanog koda. Također, više niti može se nalaziti u domeni aplikacije, slobodno prelaze granice domena aplikacije.
Na primjer, ASP.NET je runtime host koji stvara više domena aplikacija za svakog korisnika koji pristupa web mjestu. Oni također mogu biti kreirani i konfigurirani za aplikacije koje trebaju izolirati kôd ili učitavati ekstenzije samo dok ih koriste. Ova činjenica čini korisne domene u situacijama kada se upotrebljavaju dodaci i drugi nepouzdani kôd. Također su korisni u smanjenju radnog skupa aplikacija koje koriste velike DLL-ove.
Za omogućavanje komunikacije između objekata u različitim domenama aplikacije koristi se jedna od sljedeće tri vrste objekata:
- Marshal-By-Value: Kompletna kopija objekta proslijeđenog u domenu pozivajuće aplikacije. To se koristi kad se stanje objekta može premjestiti zbog razloga izvedbe.
- Marshal-By-Reference-Reference (MBR): Proxy objekta se prosljeđuje klijentu; koristi kada stanje objekta mora ostati unutar domene aplikacije.
- Kontekstno vezan: MBR objekt koji se koristi u svim domenama ili u kontekstu njegove domene aplikacija.
