Componenti e funzionalità di Visual Studio SDK

Questa sezione fornisce informazioni approfondite sulle estensioni di Visual Studio, tra cui architettura, componenti, servizi, schemi, utilità e simili.

Architettura di estendibilità

La figura seguente illustra l'architettura di estendibilità di Visual Studio. I pacchetti VSPackage forniscono funzionalità dell'applicazione, condivise nell'IDE come servizi. L'IDE standard offre anche un'ampia gamma di servizi, ad esempio SVsUIShell, che forniscono l'accesso alla funzionalità di finestra dell'IDE.

Environment Architecture graphic Visualizzazione generalizzata dell'architettura di Visual Studio

Pacchetti VSPackage

I VSPackage sono moduli software che compongono ed estendono Visual Studio con elementi dell'interfaccia utente, servizi, progetti, editor e finestre di progettazione. I VSPackage sono l'unità architetturale centrale di Visual Studio. Per altre informazioni, vedere VSPackages.

Visual Studio Shell

La shell di Visual Studio offre funzionalità di base e supporta la comunicazione incrociata tra i pacchetti VSPackage e le estensioni MEF del componente. Per altre informazioni, vedere Visual Studio Shell.

Linee guida sull'esperienza utente

Se si prevede di progettare nuove funzionalità per Visual Studio, è consigliabile esaminare queste linee guida per suggerimenti per la progettazione e l'usabilità: Linee guida per l'esperienza utente di Visual Studio.

Comandi

I comandi sono funzioni che eseguono attività, ad esempio la stampa di un documento, l'aggiornamento di una visualizzazione o la creazione di un nuovo file.

Quando si estende Visual Studio, è possibile creare comandi e registrarli con la shell di Visual Studio. È possibile specificare la modalità di visualizzazione di questi comandi nell'IDE, ad esempio in un menu o in una barra degli strumenti. In genere viene visualizzato un comando personalizzato nel menu Strumenti e viene visualizzato un comando per visualizzare una finestra degli strumenti nel sottomenu Altre finestre del menu Visualizza .

Quando si crea un comando, è necessario creare anche un gestore eventi per tale comando. Il gestore eventi determina quando il comando è visibile o abilitato, consente di modificarne il testo e garantisce che il comando risponda in modo appropriato quando viene attivato. Nella maggior parte dei casi, l'IDE gestisce i comandi usando l'interfaccia IOleCommandTarget . I comandi in Visual Studio vengono gestiti a partire dal contesto di comando più interno, in base alla selezione locale e procedendo al contesto più esterno, in base alla selezione globale. I comandi aggiunti al menu principale sono immediatamente disponibili per lo scripting.

Per altre informazioni, vedere Comandi, menu e barre degli strumenti.

Menu e barre degli strumenti consentono agli utenti di richiamare i comandi. I menu sono righe o colonne di comandi che in genere vengono visualizzati come singoli elementi di testo nella parte superiore di una finestra degli strumenti. I sottomenu sono menu secondari visualizzati quando un utente fa clic sui comandi che includono una piccola freccia. I menu di scelta rapida vengono visualizzati quando un utente fa clic con il pulsante destro del mouse su determinati elementi dell'interfaccia utente. Alcuni nomi di menu comuni sono File, Modifica, Visualizza e Finestra. Per altre informazioni, vedere Estensione di menu e comandi.

Le barre degli strumenti sono righe o colonne di pulsanti e altri controlli, ad esempio caselle combinate, caselle di riepilogo e caselle di testo. I pulsanti della barra degli strumenti in genere includono immagini icona, ad esempio un'icona di cartella per un comando Apri file o una stampante per un comando Stampa . Tutti gli elementi della barra degli strumenti sono associati ai comandi. Quando si fa clic su un pulsante della barra degli strumenti, viene eseguito il comando associato. Nel caso di un controllo a discesa, ogni elemento nell'elenco a discesa è associato a un comando diverso. Alcuni controlli della barra degli strumenti, ad esempio un controllo splitter, sono ibridi. Un lato del controllo è un pulsante della barra degli strumenti e l'altro lato è una freccia giù che visualizza diversi comandi quando viene fatto clic.

Finestre degli strumenti

Le finestre degli strumenti vengono usate nell'IDE per visualizzare le informazioni. Casella degli strumenti, Esplora soluzioni, finestra Proprietà e Web Browser sono esempi di finestre degli strumenti.

Le finestre degli strumenti offrono in genere vari controlli con cui l'utente può interagire. Ad esempio, la finestra Proprietà consente all'utente di impostare le proprietà degli oggetti che servono a uno scopo specifico. La finestra Proprietà è specializzata in questo senso, ma anche generale perché può essere usata in molte situazioni diverse. Analogamente, la finestra Output è specializzata perché fornisce output basato su testo, ma generale perché molti sottosistemi in Visual Studio possono usarlo per fornire l'output all'utente di Visual Studio.

Si consideri l'immagine seguente di Visual Studio, che contiene diverse finestre degli strumenti:

Screen shot

Alcune delle finestre degli strumenti sono ancorate in un unico riquadro che visualizza la finestra degli strumenti Esplora soluzioni e nasconde le altre finestre degli strumenti, ma le rende disponibili facendo clic sulle schede. L'immagine mostra due altre finestre degli strumenti, la finestra Elenco errori e Output , ancorata in un unico riquadro.

Viene visualizzato anche il riquadro principale del documento, che mostra diverse finestre dell'editor. Anche se le finestre degli strumenti in genere hanno una sola istanza (ad esempio, è possibile aprire una sola Esplora soluzioni), le finestre dell'editor possono avere più istanze, ognuna delle quali viene usata per modificare un documento separato, ma tutte ancorate nello stesso riquadro. L'immagine mostra un riquadro del documento con due finestre dell'editor, una finestra di progettazione moduli. Tutte le finestre nel riquadro del documento sono disponibili facendo clic sulle schede, ma la finestra dell'editor che contiene il file EditorPane.cs è visibile e attiva.

Quando si estende Visual Studio, è possibile creare finestre degli strumenti che consentono agli utenti di Visual Studio di interagire con l'estensione. È anche possibile creare editor personalizzati che consentono agli utenti di Visual Studio di modificare i documenti. Poiché le finestre degli strumenti e gli editor saranno integrati in Visual Studio, non è necessario programmarli per ancorarli o visualizzarli correttamente in una scheda. Quando sono registrati correttamente in Visual Studio, avranno automaticamente le funzionalità tipiche delle finestre degli strumenti e delle finestre dei documenti in Visual Studio. Per altre informazioni, vedere Estensione e personalizzazione delle finestre degli strumenti.

Finestre dei documenti

Una finestra del documento è una finestra figlio incorniciata di una finestra MDI (Multiple-Document Interface). Le finestre dei documenti vengono in genere usate per ospitare editor di testo, editor di moduli (noti anche come finestre di progettazione) o controlli di modifica, ma possono anche ospitare altri tipi funzionali. La finestra di dialogo Nuovo file include esempi di finestre di documento fornite da Visual Studio.

La maggior parte degli editor è specifica di un linguaggio di programmazione o di un tipo di file, ad esempio pagine HTML, frameset, file C++ o file di intestazione. Selezionando un modello nella finestra di dialogo Nuovo file , un utente crea dinamicamente una finestra di documento per l'editor per il tipo di file associato al modello. Una finestra del documento viene creata anche quando un utente apre un file esistente.

Le finestre dei documenti sono limitate all'area client MDI. Ogni finestra del documento ha una scheda nella parte superiore e l'ordine di tabulazioni è collegato ad altre finestre che possono essere aperte nell'area MDI. Facendo clic con il pulsante destro del mouse sulla scheda di una finestra del documento viene visualizzato un menu di scelta rapida che include opzioni per suddividere l'area MDI in più gruppi di schede orizzontali o verticali. La suddivisione dell'area MDI consente di visualizzare più file contemporaneamente. Per altre informazioni, vedere Document Windows.For more information, see Document Windows.

Editor

L'editor di Visual Studio consente di personalizzarlo e usarlo per il proprio tipo di contenuto tramite Managed Extensibility Framework (MEF). In molti casi non è necessario creare un VSPackage per estendere l'editor, anche se si desidera includere funzionalità dalla shell (ad esempio, un comando di menu o un tasto di scelta rapida), è possibile combinare un'estensione MEF con un VSPackage.

È anche possibile creare un editor personalizzato, ad esempio se si desidera leggere e scrivere in un database o se si desidera utilizzare una finestra di progettazione. È anche possibile usare un editor esterno, ad esempio Blocco note o Microsoft WordPad. Per altre informazioni, vedere Editor ed estensioni del servizio di linguaggio.

Servizi linguistici

Se si vuole che l'editor di Visual Studio supporti nuove parole chiave di programmazione o anche un nuovo linguaggio di programmazione, creare un servizio di linguaggio. Ogni servizio di linguaggio può implementare determinate funzionalità dell'editor completamente, parzialmente o non affatto. A seconda della configurazione, il servizio di linguaggio può fornire evidenziazione della sintassi, corrispondenza parentesi graffe, supporto di IntelliSense e altre funzionalità nell'editor.

Il cuore di un servizio linguistico è un parser e uno scanner. Uno scanner (o lexer) divide un file di origine in elementi noti come token e un parser stabilisce le relazioni tra tali token. Quando si crea un servizio di linguaggio, è necessario implementare il parser e lo scanner in modo che Visual Studio possa comprendere i token e la grammatica del linguaggio. È possibile creare servizi linguistici gestiti o non gestiti. Per altre informazioni, vedere Estendibilità del servizio di linguaggio legacy.

Progetti

In Visual Studio i progetti sono i contenitori usati dagli sviluppatori per organizzare e compilare il codice sorgente e altre risorse. I progetti consentono di organizzare, compilare, eseguire il debug e distribuire il codice sorgente, i riferimenti a servizi Web e database e altre risorse. I pacchetti VSPackage possono estendere il sistema di progetto di Visual Studio fornendo tipi di progetto, sottotipi di progetto e strumenti personalizzati.

I progetti possono anche essere riuniti in una soluzione, ovvero un raggruppamento di uno o più progetti che interagiscono per creare un'applicazione. Le informazioni sul progetto e sullo stato relative alla soluzione vengono archiviate in due file di soluzione, il file della soluzione basata su testo (con estensione sln) e il file dell'opzione utente della soluzione binaria (con estensione suo). Questi file sono simili ai file di gruppo (vbg) usati nelle versioni precedenti di Visual Basic e ai file delle opzioni utente (con estensione dsw) e dell'area di lavoro (con estensione opt) usati nelle versioni precedenti di C++.

Per altre informazioni, vedere Progetti e soluzioni.

Modelli di progetti e di elementi

Visual Studio include modelli di progetto predefiniti e modelli di elemento di progetto. È anche possibile creare modelli personalizzati o acquisire modelli dalla community e quindi integrarli in Visual Studio. MSDN Code Gallery è il posto ideale per i modelli e le estensioni.

I modelli contengono la struttura del progetto e i file di base necessari per compilare un particolare tipo di applicazione, controllo, libreria o classe. Quando si vuole sviluppare software simile a uno dei modelli, creare un progetto basato sul modello e quindi modificare i file in tale progetto.

Nota

Questa architettura del modello non è supportata per i progetti Visual C++.

Per altre informazioni, vedere Aggiunta di modelli di progetto e di elementi di progetto.

Proprietà e opzioni

Nella finestra Proprietà vengono visualizzate le proprietà di uno o più elementi selezionati: l'estensione delle pagine Opzioni proprietà contiene set di opzioni relative a un determinato componente, ad esempio un linguaggio di programmazione o un pacchetto VSPackage: Opzioni e pagine opzioni. Impostazioni sono in genere funzionalità correlate all'interfaccia utente che possono essere importate ed esportate: Supporto per Impostazioni utente.

Servizi di Visual Studio

Un servizio fornisce un set specifico di interfacce per l'utilizzo dei componenti. Visual Studio offre un set di servizi che possono essere usati da qualsiasi componente, incluse le estensioni. Ad esempio, i servizi di Visual Studio consentono di visualizzare o nascondere dinamicamente le finestre degli strumenti, abilitare l'accesso agli eventi della Guida, della barra di stato o dell'interfaccia utente. L'editor di Visual Studio fornisce anche servizi che possono essere importati dalle estensioni dell'editor. Per altre informazioni, vedere Uso e fornitura di servizi.

Debugger

Il debugger è l'interfaccia utente dei componenti di debug specifici del linguaggio. Se è stato creato un nuovo servizio di linguaggio, sarà necessario creare un motore di debug specifico da associare al debugger. Per altre informazioni, vedere Estendibilità del debugger di Visual Studio.

Controllo del codice sorgente

Per informazioni sull'implementazione di un plug-in di controllo del codice sorgente o vsPackage, vedere Controllo del codice sorgente.

Procedure guidate

È possibile creare una procedura guidata in combinazione con un nuovo tipo di progetto, in modo che la procedura guidata possa aiutare gli utenti a prendere le decisioni giuste quando creano un nuovo progetto di tale tipo. Per altre informazioni, vedere Procedure guidate.

Strumenti personalizzati

Gli strumenti personalizzati consentono di associare uno strumento a un elemento in un progetto ed eseguire tale strumento ogni volta che il file viene salvato. Per altre informazioni, vedere Strumenti personalizzati.

Utilità VSSDK

VSSDK include un set di utilità necessarie per lavorare con aspetti diversi dei pacchetti VSPackage. Per altre informazioni, vedere Utilità VSSDK.

Uso di Windows Installer

In alcuni casi potrebbe essere necessario usare Windows Installer anziché il programma di installazione VSIX: ad esempio, potrebbe essere necessario scrivere nel Registro di sistema. Per informazioni sull'uso di Windows Installer con le estensioni, vedere Installazione di VSPackage con Windows Installer.

Visualizzatore della Guida

È possibile integrare le proprie pagine della Guida e F1 nel Visualizzatore della Guida. Per altre informazioni, vedere Microsoft Help Viewer SDK.