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 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 compilata. 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, sulle impostazioni cultura e sull'editore, supporta più versioni di componenti e applicazioni. Per ulteriori informazioni, vedere Global Assembly Cache.

  • Isolamento.

    Utilizzando .NET Framework, è possibile creare applicazioni e componenti eseguiti in isolamento. L'isolamento è un componente essenziale dell'esecuzione side-by-side. Per l'isolamento è necessario tenere traccia delle risorse utilizzate e 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 Linee guida 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 compilata con .NET Framework versione 1.0 possa essere eseguita con la versione 1.1 e che un'applicazione compilata 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.

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.

Argomenti correlati

Titolo

Descrizione

Individuazione delle informazioni sulla versione di runtime

Viene descritto in che modo nel runtime vengono individuate le informazioni sulla versione del runtime da caricare per un'applicazione.

Cenni preliminari sull'unificazione degli assembly .NET Framework

Viene illustrata la modalità con cui i riferimenti a versioni diverse degli assembly .NET Framework vengono gestiti dal runtime.

Determinazione della versione del runtime da caricare

Vengono illustrati i passaggi completati dal runtime per determinare la versione del runtime da caricare per un'applicazione.

Reindirizzamento delle versioni di assembly

Viene descritto come associare un'applicazione a una versione specifica di un assembly.

Riferimenti ad assembly parzialmente qualificati ed esecuzione affiancata di più versioni

Vengono illustrate le implicazioni dell'utilizzo di riferimenti ad assembly parzialmente qualificati nelle applicazioni per cui è prevista l'esecuzione affiancata.

File di criteri editore ed esecuzione affiancata di più versioni

Vengono fornite informazioni e procedure per l'utilizzo di file dei criteri dell'editore per il reindirizzamento dell'associazione di assembly.

Assembly satellite ed esecuzione affiancata di più versioni

Viene illustrata la gestione degli assembly satellite nell'ambito dell'esecuzione affiancata.

Determinazione della versione di .NET Framework installata

Vengono fornite informazioni sull'installazione e sull'utilizzo di più versioni di .NET Framework.

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

Viene descritto come creare un file di configurazione in modo da consentire a un'applicazione di utilizzare una specifica versione di Common Language Runtime.

Creazione di più versioni di un'applicazione o componente

Vengono fornite informazioni sulla creazione e sulla distribuzione di applicazioni e componenti progettati per l'esecuzione side-by-side.

Determinazione di una strategia di manutenzione per applicazioni e componenti

Viene illustrata la creazione di un modello di manutenzione per applicazioni e componenti con versione.

Esecuzione side-by-side in-process

Viene illustrato come utilizzare l'attivazione dell'host di runtime affiancato in-process per eseguire più versioni di CLR in un solo processo.

Assembly in Common Language Runtime

Viene fornita una panoramica sui concetti di base relativi agli assembly.

Domini applicazione

Viene fornita una panoramica sui concetti di base relativi ai domini applicazione.

Riferimenti

Elemento <supportedRuntime>