Creare, distribuire e installare estensioni per Visual Studio 2010
a cura di Alessandro Del Sole (requisiti: nessuno)Introduzione
Da sempre Microsoft Visual Studio è un ambiente di sviluppo estendibile, nel senso che è possibile creare e installare componenti aggiuntivi che offrano funzionalità non comprese di default dall'ambiente stesso.
Come sapete, Visual Studio 2010 è un ambiente rivoluzionario poichè fa uso di WPF per molti aspetti e questo cambia anche l'estendibilità. Con l'eccezione di Addin e Code Snippet, che si "impacchettano" e distribuiscono col vecchio formato di file .vsi, con Visual Studio 2010 viene introdotto il formato .vsix che serve per installare le cosiddette Extensions, ossia componenti aggiuntivi quali modelli, finestre degli strumenti, estensioni per l'editor e controlli utente da installare nella Toolbox.
Cambia anche la strumentazione di Visual Studio, che si arricchisce con l'Extension Manager, uno strumento integrato che ci permette di gestire le estensioni in locale e di scaricarne di nuove dalla Visual Studio Gallery e del quale parleremo nel corso dell’articolo.In questa sede acquisiremo le nozioni fondamentali per creare estensioni per Visual Studio 2010 sfruttando non solo i nuovi metodi di distribuzione, ma anche parte di quella nuova componentistica che trae vantaggio proprio dall’architettura dell’IDE basata su WPF. Inoltre faremo la conoscenza dell’Extension Manager e vedremo come utilizzarlo per arricchire l’ambiente di sviluppo con strumenti aggiuntivi di utilità. In questa particolare circostanza non allego codice sorgente, atteso che tutti i passaggi verranno eseguiti attraverso un modello di progetto che offre tutto il necessario, di default, per raggiungere gli obiettivi che ci proponiamo.
Cosa occorre
Per poter sviluppare questo tipo di estensioni (ad eccezione dei project/item template) è necessario dotarsi del Visual Studio 2010 SDK. Una volta installato questo, si hanno a disposizione, oltre a una serie di strumenti e documenti, nuovi modelli di progetto dedicati all'estendibilità dell'ambiente (incluso l'editor di codice). Poiché ci siamo dotati della strumentazione necessaria, possiamo passare alla creazione di un progetto dimostrativo.Creazione di un progetto di esempio
Supponiamo di voler creare un controllo utente WPF da voler distribuire e rendere disponibile nella Toolbox invece che lasciare all'utente il compito di farlo manualmente. Selezioniamo File|New Project, quindi espandiamo la cartella Visual Basic (ma c'è anche per C#), infine il nodo Extensibility. Dall'elenco di modelli disponibili selezioniamo quello chiamato WPF ToolBox Control:![]()
Dopo alcuni momenti il nuovo progetto è pronto. Si presenta in realtà come un normale progetto per user control in WPF:
(l'immagine è rimpicciolita per ragioni di impaginazione, cliccare sulla figura per vederla nelle dimensioni naturali n.d.r.)Se vogliamo, possiamo modificare il codice e implementare un controllo utente che abbia più senso ma per le nostre finalità è sufficiente quello proposto. In Solution Explorer possiamo notare la presenza di un file chiamato ProvideToolboxControlAttribute.vb, che è di supporto all'estendibilità, e di un file chiamato source.extension.vsixmanifest. Quest'ultimo è un file a struttura Xml che contiene le informazioni sul pacchetto di installazione da creare per distribuire l'estensione e che, fortunatamente, può essere editato direttamente dall'IDE. Facciamo doppio clic su questo file e osserviamo Visual Studio 2010:
![]()
La maggior parte delle informazioni richieste si spiega da sola, in particolare possiamo inserire l'autore, il numero di versione dell'extension, la descrizione, un contratto di licenza (in formato testo o Rtf), un'icona e un'immagine d'anteprima che verrà utilizzata dal tool Extension Manager. Inoltre è possibile specificare riferimenti ad altre estensioni (box References) ed eventuali ulteriori contenuti da distribuire (box Content). Molto interessante è la possibilità di specificare le edizioni di Visual Studio 2010 supportate dall'extension, che si pone in essere cliccando il pulsante Select Editions, il quale fornisce accesso alla seguente finestra, dove è possibile indicare le edizioni desiderate (incluse le Shell):
![]()
A questo punto compiliamo il progetto. Se premessimo F5, verrebbe avviata una seconda istanza di Visual Studio 2010 (denominata Experimental Instance) per il debug, che ci consentirebbe di provare il funzionamento dell’estensione all’interno dell’IDE. Questo, però, ci interessa marginalmente, atteso che in questa fase vogliamo invece vedere come avviene la distribuzione.
Distribuire l’estensione
All'interno della cartella Bin\Debug (o Bin\Release) del progetto troveremo un file con estensione .vsix, che prende il nome dal progetto. Questo è esattamente il file che dovremo distribuire ai nostri utenti e che installerà il nostro componente. Facciamo doppio clic sul file. A questo punto comparirà una finestra in cui ci verrà chiesto di accettare il contratto di licenza, oltre a visualizzare informazioni sul componente e permetterci di selezionare le edizioni di Visual Studio 2010 tra quelle presenti sulla macchina:![]()
Facciamo clic su Install. Al successivo riavvio di Visual Studio 2010 troveremo il nostro controllo utente WPF nella Toolbox:
![]()
Nella figura precedente il controllo si vede due volte, sia perché disponibile nella nuova scheda appositamente creata, sia perché disponibile nella scheda che riepiloga tutti i controlli WPF. Per gestire la nostra estensione, ma anche tutte quelle disponibili sul sistema, selezioniamo Tools|Extension Manager. Questo strumento si presenta come in figura:
![]()
Notate come sia possibile sfogliare tutte le estensioni oppure solo quelle relative a una determinata categoria (come i controlli). Nell'esempio si vede il nostro controllo utente che può essere disabilitato o disinstallato e per il quale vengono mostrate le informazioni sul produttore e un'immagine d'anteprima. E' importante sapere che il formato .vsix è riconosciuto dalla Visual Studio Gallery e ci permette di condividere le nostre estensioni su Internet (cosa che il vecchio formato .vsi non consente). Nel prossimo paragrafo vedremo come condividere e scaricare dalla Gallery estensioni per Visual Studio 2010 utilizzando l'Extension Manager.
Scaricare ed installare estensioni con l’Extension Manager
Microsoft offre un interessante portale chiamato Visual Studio Gallery, un repository di estensioni per Visual Studio 2010 e componenti aggiuntivi anche per le precedenti versioni fino alla 2002. Da questo sito è possibile scaricare estensioni ma è anche possibile caricare le proprie, sia in forma free e free trial che a pagamento.L'Extension Manager ci permette di andare alla ricerca di estensioni e scaricarle direttamente dall'IDE invece che andare sul sito web della Gallery. E' sufficiente scegliere Tools|Extension Manager e, quando la finestra del tool compare, selezionare la voce Online Gallery. Lo strumento mostrerà quindi le estensioni rilevate nella Visual Studio Gallery, sfogliabili anche a seconda della tipologia/categoria come si può vedere in figura:
![]()
A questo punto non ci resta che selezionare e scaricare l'estensione desiderata. Nell'esempio in figura, viene scaricata l'estensione VSIX Explorer, che ci permette di esaminare il contenuto dei file .vsix. Una volta scaricata ed installata, sarà necessario riavviare l'IDE (operazione questa che può essere eseguita direttamente dal tool). Riapriamo l'Extension Manager: come potete vedere è possibile disabilitare o rimuovere l'estensione appena installata:
![]()
Giusto per completezza, il seguente è invece uno screenshot dell'estensione scaricata:
![]()
Il vero valore aggiunto dell’Extension Manager è che tale strumento è in grado di ricercare aggiornamenti per le estensioni correntemente installate e di consentire a noi sviluppatori di fare l’aggiornamento di tali estensioni direttamente dall’interno dell’ambiente di sviluppo, senza quindi dover accedere alla Gallery o ai siti dei produttori delle estensioni.
Ulteriori cenni sulla Visual Studio Gallery
Per condividere le proprie estensioni, o anche solo per una navigazione più completa, potete visitare la Visual Studio Gallery, alla quale dovrete accedere attraverso il vostro Windows Live ID e all’interno della quale sarà possibile pubblicare le proprie estensioni per Visual Studio 2010 utilizzando certamente il nuovo formato .vsix, ma anche pacchetti di installazione per Windows Installer in formato .msi.Conclusioni
L’estendibilità di Visual Studio è indubbiamente una interessante frontiera di business, grazie alla possibilità di creare componenti riutilizzabili per l’ambiente di sviluppo. In Visual Studio 2010, grazie all’architettura basata su WPF e al nuovo formato .vsix per la distribuzione, la creazione e l’installazione di estensioni diventano operazioni ancor più semplificate, anche in considerazione dello strumento Extension Manager che ne consente efficace gestione e amministrazione.
Per eventuali dubbi o curiosità, potete visitare il mio blog oppure contattarmi al mio indirizzo di posta elettronica.