Scrittura di codice nelle soluzioni Office

Alcuni aspetti della scrittura del codice nei progetti di Office presentano delle differenze rispetto ad altri tipi di progetti in Visual Studio.Molte di queste differenze riguardano la modalità di esposizione dei modelli a oggetti di Office al codice gestito.Le altre differenze sono correlate alla progettazione di progetti di Office.

Si applica a: le informazioni fornite in questo argomento sono valide per i progetti a livello di documento e di applicazione per Office 2013 e Office 2010. Per ulteriori informazioni, vedere Funzionalità disponibili in base ai tipi di progetto e applicazioni di Office.

Codice gestito e programmazione Office

La tecnologia fondamentale che consente di creare una soluzione Microsoft Office integrata è costituita dall'automazione, che fa parte della tecnologia COM (Component Object Model).Grazie all'automazione è possibile utilizzare codice per creare e controllare gli oggetti software esposti da qualsiasi applicazione, DLL o controllo ActiveX in grado di supportare le interfacce appropriate a livello di codice.

Bb608596.collapse_all(it-it,VS.110).gifInformazioni sugli assembly di interoperabilità primari

La maggior parte delle funzionalità delle applicazioni di Microsoft Office viene esposta per l'automazione.Non è tuttavia possibile utilizzare direttamente il codice gestito, ad esempio Visual Basic o C#, per automatizzare le applicazioni di Office.Per automatizzare le applicazioni di Office mediante il codice gestito, è necessario utilizzare gli assembly di interoperabilità primari di Office.Gli assembly di interoperabilità primari consentono l'interazione tra il codice gestito e il modello a oggetti COM delle applicazioni di Office.

Ogni applicazione di Microsoft Office dispone di un assembly di interoperabilità primario.Quando si utilizza Visual Studio per creare un progetto di Office, al progetto viene automaticamente aggiunto un riferimento all'assembly di interoperabilità primario appropriato.Per automatizzare le funzionalità di altre applicazioni di Office dal progetto, è necessario aggiungere manualmente un riferimento all'assembly di interoperabilità primario appropriato.Per ulteriori informazioni, vedere Procedura: sviluppare applicazioni di Office mediante gli assembly di interoperabilità primari.

Bb608596.collapse_all(it-it,VS.110).gifUtilizzo degli assembly di interoperabilità primari in fase di progettazione ed esecuzione

Per eseguire la maggior parte delle attività di sviluppo è necessario che gli assembly di interoperabilità primari di Office siano installati e registrati nella Global Assembly Cache del computer di sviluppo.Per ulteriori informazioni, vedere Configurazione di un computer per sviluppare soluzioni Office.

Gli assembly di interoperabilità primari di Office non sono richiesti i computer degli utenti finali per eseguire soluzioni Office che hanno .NET Framework 4 o .NET Framework 4.5.Per ulteriori informazioni, vedere Progettazione e creazione di soluzioni Office.

Bb608596.collapse_all(it-it,VS.110).gifUtilizzo dei tipi negli assembly di interoperabilità primari

Gli assembly di interoperabilità primari di Office contengono una combinazione di tipi che espongono il modello a oggetti delle applicazioni di Office e i tipi aggiuntivi dell'infrastruttura che non possono essere utilizzati direttamente nel codice.Per cenni preliminari sui tipi negli assembly di interoperabilità primari di Office, vedere Overview of Classes and Interfaces in the Office Primary Interop Assemblies.

Poiché i tipi negli assembly di interoperabilità primari di Office corrispondono ai tipi nei modelli a oggetti COM, la modalità di utilizzo di questi tipi spesso è differente dagli altri tipi gestiti.Ad esempio, la modalità di chiamata dei metodi che hanno parametri facoltativi in un assembly di interoperabilità primario di Office varia in base al linguaggio di programmazione che si sta utilizzando nel progetto.Per ulteriori informazioni, vedere i seguenti argomenti:

Modello di programmazione di progetti di Office

Tutti i progetti di Office includono una o più classi generate che forniscono il punto di ingresso per il codice.Queste classi forniscono anche accesso al modello a oggetti dell'applicazione host e accesso a funzionalità quali riquadri azioni e riquadri attività personalizzati.

Bb608596.collapse_all(it-it,VS.110).gifInformazioni sulle classi generate

In progetti a livello di documento per Excel e Word, la classe generata assomiglia a un oggetto di primo livello nel modello a oggetti dell'applicazione.Ad esempio, la classe generata ThisDocument di un progetto a livello di documento di Word fornisce gli stessi membri della classe Microsoft.Office.Interop.Word.Document del modello a oggetti di Word.Per ulteriori informazioni sulle classi generate nei progetti a livello di documento, vedere Programmazione delle personalizzazioni a livello di documento.

I progetti a livello di applicazione forniscono una classe generata denominata ThisAddIn.Questa classe non assomiglia a una classe del modello a oggetti dell'applicazione host.Piuttosto, questa classe rappresenta il componente aggiuntivo stesso e fornisce membri che è possibile utilizzare per accedere al modello a oggetti dell'applicazione host e ad altre funzionalità disponibili per i componenti aggiuntivi.Per ulteriori informazioni, vedere Programmazione di componenti aggiuntivi a livello di applicazione.

Tutte le classi generate nei progetti di Office includono gestori eventi Startup e Shutdown.Per iniziare a scrivere codice, in genere viene aggiunto codice a questi gestori eventi.Per inizializzare il componente aggiuntivo, è possibile aggiungere codice al gestore eventi Startup.Per liberare le risorse utilizzate dal componente aggiuntivo è possibile aggiungere codice al gestore eventi Shutdown.Per ulteriori informazioni, vedere Eventi nei progetti di Office.

Bb608596.collapse_all(it-it,VS.110).gifAccesso alle classi generate in fase di esecuzione

Quando viene caricata una soluzione Office, Runtime di Visual Studio Tools per Office crea un'istanza di ognuna delle classi generate nel progetto.È possibile accedere a questi oggetti da qualsiasi elemento di codice del progetto tramite la classe Globals.Ad esempio, è possibile utilizzare la classe Globals per chiamare codice nella classe ThisAddIn da un gestore eventi di un pulsante della barra multifunzione in un componente aggiuntivo a livello di applicazione.

Per ulteriori informazioni, vedere Accesso globale a oggetti nei progetti di Office.

Bb608596.collapse_all(it-it,VS.110).gifConsiderazioni dello spazio dei nomi nelle soluzioni Office

Non è possibile modificare lo spazio dei nomi predefinito (o spazio dei nomi radice in Visual Basic) di un progetto Office dopo averlo creato.Lo spazio dei nomi predefinito corrisponderà sempre al nome del progetto specificato durante la creazione del progetto.Se si rinomina il progetto, lo spazio dei nomi predefinito non viene modificato.Per ulteriori informazioni sugli spazi di nomi predefiniti nei progetti, vedere Pagina Applicazione, Progettazione progetti (C#) e Pagina Applicazione, Progettazione progetti (Visual Basic).

Bb608596.collapse_all(it-it,VS.110).gifModifica dello spazio dei nomi delle classi dell'elemento host in progetti C#

Le classi dell'elemento host (ad esempio, le classi ThisAddIn, ThisWorkbook o ThisDocument) hanno spazi dei nomi specifici nei progetti Office di Visual c#.Per impostazione predefinita, lo spazio dei nomi per gli elementi host nel progetto corrisponde al nome del progetto specificato durante la creazione del progetto.

Per modificare lo spazio dei nomi degli elementi host in un progetto Office di Visual C#, utilizzare la proprietà Spazio dei nomi per elemento host.Per ulteriori informazioni, vedere Proprietà nei progetti di Office.

Linguaggi di programmazione supportati nei progetti di Office

I modelli di progetto di Office in Visual Studio supportano solo i linguaggi di programmazione Visual Basic e Visual C#.Di conseguenza, questi modelli di progetto sono disponibili solo in corrispondenza dei nodi Visual Basic e Visual C# della finestra di dialogo Nuovo progetto in Visual Studio.Per ulteriori informazioni, vedere Procedura: creare progetti di Office in Visual Studio.

Scelta del linguaggio e programmazione di Office

Microsoft Office e Visual Basic, Applications Edition (VBA) sono stati sviluppati per l'integrazione al fine di ottimizzare il flusso di lavoro di personalizzazione delle applicazioni.Visual Basic ha ereditato alcuni di tali sviluppi.Ad esempio, in Visual Basic vengono supportati i parametri facoltativi e quindi si scrive meno codice quando si chiamano alcuni metodi negli assembly di interoperabilità primari di Microsoft Office rispetto a Visual C#.

Programmazione con Visual Basic VS. il Visual c nelle soluzioni Office

È possibile creare soluzioni Office utilizzando Visual Basic o Visual C#.Poiché i modelli a oggetti di Microsoft Office sono stati progettati per l'utilizzo con Microsoft Visual Basic, Applications Edition (VBA), gli sviluppatori di Visual Basic possono utilizzare agevolmente gli oggetti esposti dalle applicazioni di Microsoft Office.In Visual Studio 2012, gli sviluppatori di Visual C# possono utilizzare gran parte delle funzionalità utilizzate dagli sviluppatori di Visual Basic, ma in alcuni casi devono scrivere codice aggiuntivo per utilizzare i modelli a oggetti di Office.Esistono inoltre alcune differenze tra le funzionalità di programmazione di base utilizzate nello sviluppo di soluzioni Office e il codice gestito scritto in Visual Basic e C#.

Differenze principali tra Visual Basic e Visual C

Nella tabella seguente sono illustrate le differenze principali tra Visual Basic e Visual C# nello sviluppo di soluzioni Office.

Funzionalità

Descrizione

Supporto in Visual Basic

Supporto in Visual C#

Parametri facoltativi

Molti metodi di Microsoft Office hanno parametri che non sono richiesti quando si chiama il metodo.Se per il parametro non viene passato alcun valore, verrà utilizzato un valore predefinito.

Visual Basic supporta i parametri facoltativi.

Nella maggior parte dei casi, Visual C# supporta i parametri facoltativi.Per ulteriori informazioni, vedere Parametri facoltativi nelle soluzioni Office.

Passaggio di parametri per riferimento

I parametri facoltativi nella maggior parte degli assembly di interoperabilità primari di Microsoft Office possono essere passati per valore.Tuttavia, in alcuni assembly di interoperabilità primari i parametri facoltativi che accettano i tipi di riferimento devono essere passati per riferimento.

Per ulteriori informazioni sui parametri di tipo valore e riferimento, vedere Passaggio di argomenti per valore e per riferimento (Visual Basic) (per Visual Basic) e Passaggio di parametri (Guida per programmatori C#).

Non è richiesta alcuna attività aggiuntiva per il passaggio di parametri in base al riferimento.Il compilatore di Visual Basic passa automaticamente i parametri per riferimento quando necessario.

Nella maggior parte dei casi, il compilatore di Visual C# passa automaticamente i parametri per riferimento quando necessario.Per ulteriori informazioni, vedere Parametri facoltativi nelle soluzioni Office.

Proprietà con parametri

Alcune proprietà accettano parametri e fungono da funzioni di sola lettura.

Visual Basic supporta le proprietà che accettano parametri.

Visual C# supporta le proprietà che accettano parametri.

Associazione tardiva

L'associazione tardiva comporta la determinazione delle proprietà degli oggetti in fase di esecuzione, anziché eseguire il cast delle variabili al tipo di oggetto in fase di progettazione.

Visual Basic esegue l'associazione tardiva quando Option Strictè disattivato.Quando Option Strict è attiva, è necessario convertire in modo esplicito gli oggetti e utilizzare i tipi nello spazio dei nomi System.Reflection per accedere ai membri ad associazione tardiva.Per ulteriori informazioni, vedere Associazione tardiva nelle soluzioni Office.

Visual C# esegue l'associazione tardiva in progetti che hanno come destinazione .NET Framework 4.Per ulteriori informazioni, vedere Associazione tardiva nelle soluzioni Office.

Differenze principali tra lo sviluppo di soluzioni di Office e il codice gestito

Nella tabella seguente sono illustrate le differenze principali tra lo sviluppo di soluzioni Office e il codice gestito scritto in Visual Basic e Visual C#.

Funzionalità

Descrizione

Supporto in Visual Basic e Visual C#

Indici di matrice

Il limite inferiore di una matrice di raccolte nelle applicazioni di Microsoft Office iniziano con 1.Visual Basic e Visual C# utilizzano matrici in base 0.Per ulteriori informazioni, vedere°Matrici (Guida per programmatori C#) e Matrici in Visual Basic.

Per accedere al primo elemento di una raccolta del modello a oggetti di un'applicazione di Microsoft Office, utilizzare l'indice 1 anziché 0.

Vedere anche

Attività

Procedura: sviluppare applicazioni di Office mediante gli assembly di interoperabilità primari

Procedura: creare gestori eventi in progetti di Office

Concetti

Parametri facoltativi nelle soluzioni Office

Accesso globale a oggetti nei progetti di Office

Eventi nei progetti di Office

Associazione tardiva nelle soluzioni Office

Sviluppo collaborativo di soluzioni Office