Cenni preliminari sull'esecuzione affiancata di diverse versioni

L'esecuzione affiancata consente di eseguire più versioni di un'applicazione o di un componente sullo stesso computer. È possibile disporre contemporaneamente sullo stesso computer di più versioni di Common Language Runtime e di più versioni di applicazioni e componenti che utilizzano una versione del runtime.

Nella figura riportata di seguito viene illustrato l'utilizzo di due diverse versioni del runtime da parte di più applicazioni sullo stesso computer. Nelle applicazioni A, B e C viene utilizzata la versione di runtime 1.0, mentre nell'applicazione D viene utilizzata la versione di runtime 1.1.

Esecuzione affiancata di due versioni del runtime

Esecuzione contemporanea di diverse versioni

.NET Framework è costituito da Common Language Runtime e da oltre venti assembly contenenti i tipi di API. Per il runtime e gli assembly .NET Framework vengono utilizzate versioni distinte. La versione 1.0 del runtime, ad esempio, corrisponde in realtà alla versione 1.0.3705.0, mentre la versione 1.0 degli assembly .NET Framework rappresenta la versione 1.0.3300.0.

Nella figura riportata di seguito viene illustrato l'utilizzo di due diverse versioni di un componente da parte di più applicazioni sullo stesso computer. Nelle applicazioni A e B viene utilizzata la versione 1.0 del componente, mentre nell'applicazione C viene utilizzata la versione 2.0 dello stesso componente.

Esecuzione affiancata di due versioni di un componente

Esecuzione contemporanea di diverse versioni

L'esecuzione affiancata offre un maggiore controllo sulle versioni di un componente a cui viene associata un'applicazione, nonché sulla versione del runtime utilizzata da un'applicazione.

Vantaggi dell'esecuzione affiancata

Prima del rilascio di Microsoft Windows XP e .NET Framework si verificavano conflitti tra le DLL poiché le applicazioni non erano in grado di effettuare una distinzione tra versioni incompatibili dello stesso codice. Le informazioni sui tipi contenute in una DLL erano associate solo a un nome file. Un'applicazione non disponeva di alcuno strumento per verificare se i tipi contenuti in una DLL corrispondevano ai tipi con cui l'applicazione era stata generata. Di conseguenza, una nuova versione di un componente poteva sovrascrivere una versione precedente pregiudicando l'esecuzione delle applicazioni.

Allo scopo di eliminare i conflitti tra DLL, l'esecuzione affiancata e .NET Framework forniscono le funzionalità illustrate di seguito.

  • Assembly con nome sicuro.

    Nell'ambito dell'esecuzione affiancata vengono utilizzati assembly con nome sicuro per associare le informazioni sui tipi a una specifica versione di un assembly. In questo modo viene impedita l'associazione di un'applicazione o di un componente a una versione non valida di un assembly. Gli assembly con nome sicuro consentono la presenza di più versioni di un file sullo stesso computer e il relativo utilizzo da parte delle applicazioni. Per ulteriori informazioni, vedere Assembly con nomi sicuri.

  • Archiviazione del codice con supporto della versione.

    .NET Framework consente l'archiviazione del codice con supporto della versione nella Global Assembly Cache. La Global Assembly Cache rappresenta una cache di codice a livello di computer presente su tutti i computer su cui è installato .NET Framework. Questa cache, in cui gli assembly vengono archiviati in base alle informazioni sulla versione, sulla lingua e sull'editore, supporta più versioni di componenti e applicazioni. Per ulteriori informazioni, vedere Global Assembly Cache.

  • Isolamento.

    Mediante .NET Framework è possibile creare applicazioni e componenti che vengono eseguiti in modalità isolata, componente essenziale dell'esecuzione affiancata. L'isolamento consente di tenere traccia delle risorse utilizzate e di condividere in modo sicuro le risorse tra più versioni di un'applicazione o di un componente. L'isolamento comprende inoltre l'archiviazione dei file in base alla versione. Per ulteriori informazioni sull'isolamento, vedere Indicazioni per la creazione di applicazioni e componenti per l'esecuzione affiancata di più versioni.

Compatibilità tra versioni

Le versioni 1.0 e 1.1 di .NET Framework sono state progettate in modo da garantirne la compatibilità. È previsto che un'applicazione generata con .NET Framework versione 1.0 possa essere eseguita con la versione 1.1 e che un'applicazione generata con .NET Framework versione 1.1 possa essere eseguita con la versione 1.0. Le funzionalità delle API aggiunte nella versione 1.1 di .NET Framework non possono tuttavia essere utilizzate nella versione 1.0. Le applicazioni create con la versione 2.0 potranno essere eseguite solo con quella stessa versione. Pertanto non sarà possibile eseguirle con la versione 1.1 o precedente. Per informazioni dettagliate sulla compatibilità del runtime, vedere Compatibilità tra versioni.

Le versioni di .NET Framework vengono gestite come una singola unità costituita dal runtime e dagli assembly .NET Framework associati, in base a un concetto definito unificazione degli assembly. È possibile reindirizzare l'associazione di assembly in modo da includere altre versioni degli assembly .NET Framework. L'override dell'associazione di assembly predefinita può tuttavia rivelarsi rischioso e richiede l'esecuzione di test accurati prima della distribuzione.

Vedere anche

Attività

Procedura: utilizzare un file di configurazione dell'applicazione per una versione specifica di .NET Framework

Altre risorse

Esecuzione affiancata di diverse versioni
Nozioni fondamentali sull'esecuzione affiancata di diverse versioni
Creazione di più versioni di un'applicazione o componente