Introduzione all'interoperabilità COM (Visual Basic)

Il modello Component Object Model (COM) consente a un oggetto di esporre la relativa funzionalità ad altri componenti e di ospitare applicazioni. Sebbene gli oggetti COM siano stati fondamentali per la programmazione di Windows per molti anni, le applicazioni progettate per Common Language Runtime (CLR) offrono molti vantaggi.

Le applicazioni .NET Framework sostituiranno infine quelle sviluppate con COM. Fino ad allora, potrebbe essere necessario usare o creare oggetti COM usando Visual Studio. L'interoperabilità con COM, o COM interop, consente di usare gli oggetti COM esistenti durante la transizione a .NET Framework in base al proprio ritmo.

Usando .NET Framework per creare componenti COM, è possibile usare l'interoperabilità COM senza registrazione. In questo modo è possibile controllare la versione DLL abilitata quando sono installate più versioni in un computer, e consentire agli utenti finali di usare XCOPY o FTP per copiare l'applicazione in una directory appropriata nel computer in cui può essere eseguita. Per altre informazioni, vedere Interoperabilità COM senza registrazione.

Codice gestito e dati

Il codice sviluppato per .NET Framework viene definito codice gestito e contiene metadati usati da CLR. I dati usati dalle applicazioni .NET Framework vengono chiamati dati gestiti perché il runtime gestisce le attività correlate ai dati, ad esempio l'allocazione e il recupero della memoria e l'esecuzione del controllo dei tipi. Per impostazione predefinita, Visual Basic .NET usa codice gestito e dati, ma è possibile accedere al codice non gestito e ai dati degli oggetti COM usando assembly di interoperabilità (descritti più avanti in questa pagina).

Assembly

Un assembly è il blocco predefinito principale di un'applicazione .NET Framework. Si tratta di una raccolta di funzionalità compilate, con controllo delle versioni e distribuite come singola unità di implementazione contenente uno o più file. Ogni assembly contiene un manifesto dell'assembly.

Librerie di tipi e manifesti di assembly

Le librerie dei tipi descrivono le caratteristiche degli oggetti COM, ad esempio i nomi dei membri e i tipi di dati. I manifesti degli assembly eseguono la stessa funzione per le applicazioni .NET Framework. Includono informazioni sugli elementi seguenti:

  • Identità dell'assembly, versione, impostazioni cultura e firma digitale.

  • File che costituiscono l'implementazione dell'assembly.

  • Tipi e risorse che costituiscono l'assembly. Sono inclusi quelli che vengono esportati da esso.

  • Dipendenze in fase di compilazione in altri assembly.

  • Autorizzazioni necessarie per l'esecuzione corretta dell'assembly.

Per altre informazioni sugli assembly e sui manifesti di assembly, vedere Assembly in .NET.

Importazione ed esportazione di librerie dei tipi

Visual Studio contiene un'utilità Tlbimp che consente di importare informazioni da una libreria dei tipi in un'applicazione .NET Framework. È possibile generare librerie dei tipi dagli assembly usando l'utilità Tlbexp.

Per informazioni su Tlbimp e Tlbexp, vedere Tlbimp.exe (utilità di importazione della libreria dei tipi) e Tlbexp.exe (utilità di esportazione della libreria dei tipi).

Assembly di interoperabilità

Gli assembly di interoperabilità sono assembly .NET Framework che si connettono tra codice gestito e non gestito, eseguendo il mapping dei membri dell'oggetto COM ai membri gestiti di .NET Framework equivalenti. Gli assembly di interoperabilità creati da Visual Basic .NET gestiscono molti dettagli dell'uso di oggetti COM, ad esempio il marshalling dell'interoperabilità.

Marshalling dell'interoperabilità

Tutte le applicazioni .NET Framework condividono un set di tipi comuni che consentono l'interoperabilità degli oggetti, indipendentemente dal linguaggio di programmazione usato. I parametri e i valori restituiti degli oggetti COM talvolta usano tipi di dati diversi da quelli usati nel codice gestito. Il marshalling dell'interoperabilità è il processo di creazione di pacchetti di parametri e valori restituiti in tipi di dati equivalenti durante lo spostamento da e verso oggetti COM. Per altre informazioni, vedere Marshalling di interoperabilità.

Vedi anche