Condividi tramite


Domini delle applicazioni (C# e Visual Basic)

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.

' Create an Application Domain:
Dim newDomain As System.AppDomain = System.AppDomain.CreateDomain("NewApplicationDomain")

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

' Unload the application domain:
System.AppDomain.Unload(newDomain)
// 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 Assembly e Global Assembly Cache (C# e Visual Basic).

  • 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

Vedere anche

Concetti

Guida per programmatori C#

Assembly e Global Assembly Cache (C# e Visual Basic)

Altre risorse

Guida per programmatori Visual Basic

Domini applicazione

Programmazione con i domini applicazione e gli assembly