Determinazione dei limiti del dominio applicazione
Aggiornamento: novembre 2007
Una volta completata la transizione da codice non gestito a codice gestito, il codice di hosting deve creare uno o più nuovi domini applicazione in cui eseguire il codice utente. Un dominio applicazione è un costrutto che gli host utilizzano per isolare il codice in esecuzione all'interno di un processo. Tale isolamento è necessario per assicurare che non vi siano interazioni con codice non preposto all'interazione. È ad esempio necessario tenere separato il codice scaricato sull'host Internet Explorer da due diversi siti Web. Al fine di assicurare tale isolamento, l'host Internet Explorer crea un dominio applicazione per ciascun sito.
Prima di creare un dominio applicazione in cui eseguire codice utente, l'host deve determinare dove collocarne i limiti. I fattori che incidono su questa valutazione sono i requisiti per limitare l'accesso di un determinato tipo ad altri tipi, la configurazione, la protezione e la possibilità di scaricare il codice quando non è più necessario.
Limitazione dell'accesso ai tipi
Un tipo in esecuzione in un dominio applicazione può vedere gli altri tipi in esecuzione nello stesso dominio e chiamarli direttamente. Un tipo non può mai vedere invece i tipi in esecuzione in domini applicazione diversi e, di conseguenza, non può chiamarli. La possibilità di limitare l'accesso di un tipo ad altri tipi è una delle considerazioni che maggiormente incidono nella fase in cui si stabilisce dove collocare i limiti di un dominio.
Impostazioni di configurazione
I domini applicazione sono l'unità principale di configurazione nel runtime. Ad ogni dominio applicazione è associato un file di configurazione opzionale che descrive impostazioni che riguardano il codice in esecuzione all'interno del dominio.
Un file di configurazione può ad esempio contenere un elenco di directory in cui trovare assembly privati, informazioni di associazione di versione per gli assembly condivisi, il percorso dei tipi a cui è possibile accedere da remoto e così via.
Protezione
Gli host possono impostare per un dominio sia criteri di protezione sugli accessi del codice, sia criteri di protezione basata sui ruoli. L'host è così in grado di controllare il set di autorizzazioni riconosciute al codice in un determinato dominio e di impostare sia il principale del thread corrente che il principale predefinito per la protezione basata sui ruoli.
Un host potrebbe ad esempio definire criteri di protezione sugli accessi del codice a livello del dominio applicazione, per assicurare che possa essere eseguito nel dominio solo il codice scaricato da un particolare sito. In alternativa, l'host potrebbe impostare principali per la protezione basata sui ruoli al fine di implementare uno schema di autenticazione personalizzato.
Scaricamento di codice
Per scaricare il codice gestito in esecuzione in un processo al fine di liberare memoria che potrà essere così destinata ad altri utilizzi, l'host deve scaricare il dominio applicazione in cui il codice viene eseguito. Non è possibile scaricare singolarmente assembly o tipi. L'host ha regole proprie che determinano quando è possibile scaricare codice utente. Il proprio browser Internet potrebbe ad esempio caricare controlli gestiti in un dominio determinato dal sito. Il browser potrebbe poi disporre di regole che gli permettono di tenere in memoria le pagine visitate recentemente, così da rispondere in modo più veloce alla pressione dei pulsanti Avanti e Indietro. Quando il browser determina che non è più necessario conservare un pagina in memoria, elimina il dominio applicazione eliminando al contempo anche il codice dei controlli gestiti.