Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1909, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Disabilita cookie ShinyStat

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

Creare, distribuire e installare Extensions per Visual Studio 2010 (con esempio sull'installazione di controlli WPF nella Toolbox)

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 VS 2010 viene introdotto il formato .vsix che serve per installare le cosiddette extensions, ossia componenti aggiuntivi quali template, tool window, 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 che ci permette di gestire le estensioni in locale e di scaricarne di nuove dalla Visual Studio Gallery.

Per poter sviluppare questo tipo di estensioni (ad eccezione dei project/item template) è necessario dotarsi del Visual Studio 2010 SDK, disponibile qui. Una volta installato 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). Ad 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.

Clicchiamo File|New|Project. Espandiamo la cartella Visual Basic (ma c'è anche per C#), quindi il nodo Extensibility. Dall'elenco di template disponibili selezioniamo quello chiamato WPF ToolBox Control:

Dopo alcuni il nuovo progetto è pronto. Si presenta in realtà come un normale progetto per user control in WPF:

Se vogliamo, possiamo modificare il codice e implementare un controllo utente che abbia più senso ma per il nostro post dimostrativo è 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 che fornisce accesso alla seguente finestra, dove è possibile indicare le edizioni desiderate (incluse le Shell):

A questo punto compiliamo il progetto. Se premiamo F5, verrà avviata una seconda istanza di Visual Studio 2010 (denominata Experimental Hive) per il debug ma non è questo che ci interessa, volendo invece vedere come avviene il deploy. 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 post vedremo come condividere e scaricare dalla Gallery estensioni per Visual Studio 2010 utilizzando l'Extension Manager.

Alessandro

Print | posted on domenica 14 marzo 2010 23:50 | Filed Under [ Visual Basic Visual Studio 2010 ]

Powered by:
Powered By Subtext Powered By ASP.NET