Condividi tramite


Domini applicazione (Guida per programmatori C#)

Aggiornamento: novembre 2007

I domini applicazione costituiscono un metodo flessibile e protetto per l'isolamento delle applicazioni in esecuzione.

I domini applicazione vengono in genere creati e modificati dagli host di runtime. In alcuni casi può essere necessario che l'applicazione interagisca a livello di codice con i domini, ad esempio per scaricare un componente senza che venga interrotta l'esecuzione dell'applicazione.

I domini applicazione favoriscono la sicurezza, separando le singole applicazioni e i rispettivi dati. Un singolo processo può eseguire più domini applicazione, con lo stesso livello di isolamento che si otterrebbe utilizzando processi separati. L'esecuzione di più applicazioni all'interno di un singolo processo consente di aumentare il livello di scalabilità del server.

Nell'esempio di codice riportato di seguito viene creato un nuovo dominio applicazione e viene quindi caricato ed eseguito un assembly compilato in precedenza, HelloWorld.exe, archiviato nell'unità C.

static void Main()
{
    // Create an Application Domain:
    System.AppDomain newDomain = System.AppDomain.CreateDomain("NewApplicationDomain");

    // Load and execute an assembly:
    newDomain.ExecuteAssembly(@"c:\HelloWorld.exe");

    // Unload the application domain:
    System.AppDomain.Unload(newDomain);
}

Cenni preliminari sui domini applicazione

I domini applicazione sono caratterizzati dalle seguenti proprietà:

  • Per poter essere eseguito, un assembly deve essere caricato in un dominio applicazione. Per ulteriori informazioni, vedere la classe Assembly e Global Assembly Cache (Guida per programmatori C#).

  • Gli errori di un dominio applicazione non influiscono sul codice in esecuzione in un altro dominio applicazione.

  • È possibile interrompere l'esecuzione di singole applicazioni e scaricare codice senza arrestare l'intero processo. Non è possibile scaricare singoli assembly o tipi, ma solo interi domini applicazione.

Sezioni correlate

Specifiche del linguaggio C#

Per ulteriori informazioni, vedere le sezioni riportate di seguito in Specifiche del linguaggio C#:

  • 3.1 Avvio dell'applicazione

Vedere anche

Concetti

Guida per programmatori C#

Riferimenti

Assembly e Global Assembly Cache (Guida per programmatori C#)