Condividi tramite


Procedura: definire e installare un'estensione di modellazione

In Visual Studio Ultimate è possibile definire estensioni per i diagrammi di modellazione. In questo modo, è possibile adattare i diagrammi e i modelli alle proprie necessità. È possibile ad esempio definire comandi di menu, profili UML, vincoli di convalida ed elementi della casella degli strumenti. È possibile definire diversi componenti in una singola estensione. È inoltre possibile distribuire queste estensioni ad altri utenti di Visual Studio Ultimate come estensioni Visual Studio Integration Extension (VSIX). È possibile creare un'estensione VSIX tramite un progetto VSIX in Visual Studio.

È necessario che sia installato Visual Studio SDK.

Requisiti

Creazione di una soluzione di estensione di modello

Per definire un'estensione di modello, è necessario creare una soluzione contenente i progetti seguenti:

  • Un progetto VSIX (Visual Studio Integration Extension). Tramite questo progetto viene generato un file che funge da programma di installazione per i componenti dell'estensione. Nella finestra di dialogo Nuovo progetto espandere Visual Basic o Visual C#, quindi fare clic su Extensibility. Nella colonna centrale fare clic su Progetto VSIX.

  • Un progetto Libreria di classi, obbligatorio per i componenti che includono codice programma.

Se si desidera creare un'estensione che include diversi componenti, è possibile svilupparli in una singola soluzione. È necessario un solo progetto VSIX ed è possibile aggiungere i componenti come contenuto alla definizione VSIX.

I componenti che non richiedono codice, ad esempio gli elementi personalizzati della casella degli strumenti e i profili UML personalizzati, possono essere aggiunti direttamente al progetto VSIX senza utilizzare progetti separati. I componenti quali comandi di menu che richiedono codice programma possono essere definiti più facilmente in un progetto distinto.

Per configurare un progetto VSIX

  1. Se si crea un componente con codice, è più semplice creare innanzitutto il progetto Libreria di classi. Il codice verrà aggiunto a tale progetto.

  2. Creazione di un progetto VSIX.

    1. In Esplora soluzioni fare clic con il pulsante destro del mouse sulla soluzione, scegliere Aggiungi, quindi Nuovo progetto.

    2. In Modelli installati espandere Visual Basic o Visual C#, quindi fare clic su Extensibility. Nella colonna centrale fare clic su Progetto VSIX.

  3. Impostare il progetto VSIX come progetto di avvio della soluzione.

    • In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto VSIX e scegliere Imposta come progetto di avvio.
  4. Aprire source.extension.vsixmanifest. Il file verrà aperto nell'editor del manifesto.

  5. Impostare il nome e i campi descrittivi del progetto VSIX.

  6. Fare clic su Seleziona versioni e selezionare le edizioni di Visual Studio in cui si desidera eseguire l'estensione.

  7. Aggiungere i componenti all'elenco Contenuto.

    1. Fare clic su Aggiungi contenuto.

    2. Per un componente con codice:

      In Seleziona un tipo di contenuto selezionare Componente MEF.

      In Selezionare un'origine fare clic su Progetto e selezionare il nome del progetto Libreria di classi.

      Per altri tipi di componente, vedere i collegamenti nella sezione successiva.

Sviluppo del componente

Per ogni componente quale un comando di menu o un gestore movimenti, è necessario definire un gestore distinto. Nella tabella seguente viene fornito un riepilogo relativo ai diversi tipi di gestore.

Tipo di estensione

Argomento

Modalità di dichiarazione di ciascun componente

Comando di menu

Procedura: definire un comando di menu in un diagramma di modellazione

[ClassDesignerExtension]

// or other diagram types

[Export(typeof(ICommandExtension))]

public class MyCommand : ICommandExtension

{...

Trascinare la selezione o fare doppio clic

Procedura: definire un gestore di trascinamento della selezione e doppio clic in un diagramma di modellazione

[ClassDesignerExtension]

// or other diagram types

[Export(typeof(IGestureExtension))]

public class MyGesture : IGestureExtension

{...

Vincolo di convalida

Procedura: definire vincoli di convalida per i modelli UML

[Export(typeof( System.Action<ValidationContext, object>))]

[ValidationMethod(ValidationCategories.Save

| ValidationCategories.Menu)]

public void ValidateSomething

(ValidationContext context, IClassifier elementToValidate)

{...}

Gestore eventi per il collegamento elemento di lavoro

Procedura: definire un gestore dei collegamenti agli elementi di lavoro

[Export(typeof(ILinkedWorkItemExtension))]

public class MyWorkItemEventHandler : ILinkedWorkItemExtension

{...

Profilo UML

Procedura: definire un profilo per estendere UML

Non definito con il codice del programma. Al contrario, definire il tipo di componente in source.extension.vsixmanifest nel modo seguente.

Tipo di componente = Estensione personalizzata

Tipo = Microsoft.VisualStudio.UmlProfile

Elemento della casella degli strumenti

Procedura: definire un elemento personalizzato della Casella degli strumenti di modellazione

Non definito con il codice del programma. Al contrario, definire il tipo di componente in source.extension.vsixmanifest nel modo seguente.

Tipo di componente = Estensione personalizzata

Tipo = Microsoft.VisualStudio.ArchitectureTools.CustomToolboxItems

Esecuzione di un'estensione durante lo sviluppo

Per eseguire un'estensione durante lo sviluppo

  1. Scegliere Avvia debug dal menu Debug di Visual Studio.

    Verrà eseguita la compilazione del progetto e una nuova istanza di Visual Studio verrà avviata in modalità sperimentale.

    • In alternativa è possibile fare clic su Avvia senza eseguire debug. In questo modo si riduce il tempo necessario per l'avvio del programma.
  2. Creare o aprire un progetto di modellazione nell'istanza sperimentale di Visual Studio e creare o aprire un diagramma.

    L'estensione verrà caricata ed eseguita.

  3. Se è stata utilizzata l'opzione Avvia senza eseguire debug ma si desidera utilizzare il debugger, tornare all'istanza principale di Visual Studio. Scegliere Connetti a processo dal menu Debug. Nella finestra di dialogo selezionare l'istanza sperimentale di Visual Studio con nome di programma devenv.

Per eseguire l'estensione nell'istanza principale di Visual Studio, seguire i passaggi in Installazione e disinstallazione di un'estensione.

Installazione e disinstallazione di un'estensione

È possibile installare un'estensione di Visual Studio sia nel computer in uso che in altri computer.

Per installare un'estensione

  1. Nel computer trovare il file .vsix compilato dal progetto di estensione.

    1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto, quindi scegliere Apri cartella in Esplora risorse.

    2. Individuare il file bin\*\Progetto.vsix

  2. Copiare il file .vsix nel computer di destinazione in cui si desidera installare l'estensione. Si può trattare del computer in uso o di un altro computer.

    • Nel computer di destinazione deve essere presente una delle versioni di Visual Studio specificata in source.extension.vsixmanifest.
  3. Nel computer di destinazione fare doppio clic sul file .vsix.

    Verrà visualizzato Visual Studio Extension Installer e verrà installata l'estensione.

  4. Avviare o riavviare Visual Studio.

Per disinstallare un'estensione

  1. Scegliere Gestione estensioni dal menu Strumenti.

  2. Espandere Estensioni installate.

  3. Selezionare l'estensione, quindi fare clic su Disinstalla.

Raramente, può verificarsi che un'estensione errata non venga caricata creando un rapporto nella finestra di errore. Tale estensione non viene però visualizzata in Gestione estensioni. In tal caso, è possibile rimuovere l'estensione eliminando il file dal percorso seguente, dove % LocalAppData% è in genere NomeUnità:\Users\NomeUtente\AppData\Local:

%LocalAppData%\Microsoft\VisualStudio\10.0\Extensions

Vedere anche

Concetti

Procedura: definire un profilo per estendere UML

Procedura: definire vincoli di convalida per i modelli UML

Procedura: definire un comando di menu in un diagramma di modellazione

Altre risorse

Procedura: definire un elemento personalizzato della Casella degli strumenti di modellazione