Gewusst wie: Definieren und Installieren einer Modellierungserweiterung
In Visual Studio Ultimate können Sie Erweiterungen für Modellierungsdiagramme definieren. Auf diese Weise können Sie die Diagramme und Modelle Ihren eigenen Anforderungen anpassen. Sie können z. B. Menübefehle, UML-Profile, Validierungseinschränkungen und Toolboxelemente definieren. In einer Erweiterung können mehrere Komponenten definiert werden. Sie können diese Erweiterungen auch in Form einer Visual Studio-Integrationserweiterung (VSIX) an andere Visual Studio Ultimate-Benutzer verteilen. Eine solche Erweiterung (VSIX) kann mithilfe eines VSIX-Projekts in Visual Studio erstellt werden.
Sie müssen Visual Studio SDK installiert haben.
Voraussetzungen
Visual Studio 2010-Visualisierungs- & Modellierungs-SDK. Weitere Informationen finden Sie in der Code Gallery unter Visual Studio-Visualisierungs- und Modellierungs-SDK.
Erstellen einer Modellierungserweiterungs-Projektmappe
Zum Definieren einer Modellierungserweiterung müssen Sie eine Projektmappe erstellen, die die folgenden Projekte enthält:
Ein VSIX (Visual Studio Integration Extension)-Projekt. Dadurch wird eine Datei generiert, die als Installationsprogramm für die Komponenten der Erweiterung fungiert. Erweitern Sie im Dialogfeld Neues Projekt den Knoten Visual C# oder Visual Basic, und klicken Sie dann auf Erweiterungen. Klicken Sie in der mittleren Spalte auf VSIX Project.
Ein Klassenbibliotheksprojekt, das für Komponenten benötigt wird, die Programmcode enthalten.
Wenn Sie eine Erweiterung mit mehreren Komponenten erstellen möchten, können Sie diese in einer einzigen Projektmappe entwickeln. Sie benötigen lediglich ein VSIX-Projekt, und die Komponenten werden der VSIX-Definition als Inhalt hinzugefügt.
Komponenten, für die kein Code erforderlich ist (z. B. benutzerdefinierte Toolboxelemente und benutzerdefinierte UML-Profile) können dem VSIX-Projekt direkt hinzugefügt werden, ohne dass separate Projekte benötigt werden. Komponenten, für die Programmcode erforderlich ist (z. B. Menübefehle), können leichter in einem separaten Projekt definiert werden.
So richten Sie ein VSIX-Projekt ein
Wenn Sie eine Komponente mit Code erstellen, ist es am einfachsten, zuerst das Klassenbibliotheksprojekt zu erstellen. Diesem Projekt wird der Code hinzugefügt.
Erstellen eines VSIX-Projekts
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Projektmappe, zeigen Sie auf Hinzufügen, und klicken Sie anschließend auf Neues Projekt.
Erweitern Sie unter Installierte Vorlagen den Knoten Visual C# oder Visual Basic, und klicken Sie anschließend auf Erweiterungen. Klicken Sie in der mittleren Spalte auf VSIX Project.
Legen Sie das VSIX-Projekt als Startprojekt der Projektmappe fest.
- Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das VSIX-Projekt, und klicken Sie anschließend auf Als Startprojekt festlegen.
Öffnen Sie source.extension.vsixmanifest. Die Datei wird im Manifest-Editor geöffnet.
Legen Sie den Namen und die Beschreibungsfelder des VSIX fest.
Klicken Sie auf Editionen auswählen, und wählen Sie die Visual Studio-Editionen aus, unter denen die Erweiterung ausgeführt werden soll.
Fügen Sie der Liste Inhalt die Komponenten hinzu.
Klicken Sie auf Inhalt hinzufügen.
Für eine Komponente mit Code:
Wählen Sie für Inhaltstyp auswählen die Option MEF-Komponente aus.
Klicken Sie in Quelle auswählen auf Projekt, und wählen Sie den Namen des Klassenbibliotheksprojekts aus.
Informationen zu anderen Komponententypen finden Sie unter den Links im nächsten Abschnitt.
Entwickeln der Komponente
Sie müssen für jede Komponente (z. B. für einen Menübefehl oder Gestenhandler) einen separaten Handler definieren. In der folgenden Tabelle erhalten Sie eine Übersicht über die verschiedenen Arten von Handlern.
Erweiterungstyp |
Thema |
Typische Deklaration der einzelnen Komponenten |
---|---|---|
Menübefehl |
Gewusst wie: Definieren eines Menübefehls in einem Modellierungsdiagramm |
[ClassDesignerExtension] // or other diagram types [Export(typeof(ICommandExtension))] public class MyCommand : ICommandExtension {... |
Drag & Drop oder Doppelklick |
[ClassDesignerExtension] // or other diagram types [Export(typeof(IGestureExtension))] public class MyGesture : IGestureExtension {... |
|
Validierungseinschränkung |
Gewusst wie: Definieren von Validierungseinschränkungen für UML-Modelle |
[Export(typeof( System.Action<ValidationContext, object>))] [ValidationMethod(ValidationCategories.Save | ValidationCategories.Menu)] public void ValidateSomething (ValidationContext context, IClassifier elementToValidate) {...} |
Arbeitsaufgabenlink-Ereignishandler |
Gewusst wie: Definieren eines Linkhandlers für Arbeitsaufgaben |
[Export(typeof(ILinkedWorkItemExtension))] public class MyWorkItemEventHandler : ILinkedWorkItemExtension {... |
UML-Profil |
Nicht definiert mit Programmcode. Definieren Sie den Komponententyp stattdessen wie folgt in source.extension.vsixmanifest. Komponententyp = Benutzerdefinierte Erweiterung Typ = Microsoft.VisualStudio.UmlProfile |
|
Toolboxelement |
Gewusst wie: Definieren eines benutzerdefinierten Elements für die Modellerstellungstoolbox |
Nicht definiert mit Programmcode. Definieren Sie den Komponententyp stattdessen wie folgt in source.extension.vsixmanifest. Komponententyp = Benutzerdefinierte Erweiterung Typ = Microsoft.VisualStudio.ArchitectureTools.CustomToolboxItems |
Ausführen einer Erweiterung während ihrer Entwicklung
So führen Sie eine Erweiterung während ihrer Entwicklung aus
Klicken Sie in Visual Studio im Menü Debuggen auf Debugging starten.
Das Projekt wird erstellt, und eine neue Instanz von Visual Studio wird im Testmodus gestartet.
- Alternativ können Sie auf Starten ohne Debugging klicken. Dadurch wird das Programm schneller gestartet.
Erstellen oder öffnen Sie in der experimentellen Instanz von Visual Studio ein Modellierungsprojekt, und erstellen oder öffnen Sie ein Diagramm.
Die Erweiterung wird geladen und ausgeführt.
Wenn Sie Starten ohne Debugging ausgewählt haben, den Debugger aber verwenden möchten, wechseln Sie zur Hauptinstanz von Visual Studio. Klicken Sie im Menü Debuggen auf An den Prozess anhängen. Wählen Sie im Dialogfeld die experimentelle Instanz von Visual Studio mit dem Programmnamen devenv aus.
Um die Erweiterung in der Hauptinstanz von Visual Studio auszuführen, befolgen Sie die Schritte unter Installieren und Deinstallieren einer Erweiterung.
Installieren und Deinstallieren einer Erweiterung
Sie können eine Visual Studio-Erweiterung sowohl auf Ihrem eigenen Computer als auch auf anderen Computern installieren.
So installieren Sie eine Erweiterung
Suchen Sie auf dem Computer nach der .vsix-Datei, die vom Erweiterungsprojekt erstellt wurde.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und klicken Sie dann auf Ordner in Windows Explorer öffnen.
Suchen Sie nach der Datei bin\*\IhrProjekt.vsix.
Kopieren Sie die .vsix-Datei auf den Zielcomputer, auf dem Sie die Erweiterung installieren möchten. Dies kann Ihr eigener Computer oder ein anderer Computer sein.
- Der Zielcomputer muss über eine der Editionen von Visual Studio verfügen, die Sie in source.extension.vsixmanifest angegeben haben.
Doppelklicken Sie auf dem Zielcomputer auf die .vsix-Datei.
Installer für Visual Studio-Erweiterungen wird geöffnet, und die Erweiterung wird installiert.
Starten Sie Visual Studio, bzw. starten Sie die Anwendung neu.
So deinstallieren Sie eine Erweiterung
Klicken Sie im Menü Extras auf Erweiterungs-Manager.
Erweitern Sie Installierte Erweiterungen.
Wählen Sie die Erweiterung aus, und klicken Sie dann auf Deinstallieren.
In seltenen Fällen kann es vorkommen, dass eine fehlerhafte Erweiterung nicht geladen und ein Bericht im Fehlerfenster erstellt wird, aber im Erweiterungs-Manager keine Informationen angezeigt werden. In diesem Fall können Sie die Erweiterung löschen, indem Sie die Datei von folgendem für % LocalAppData% üblichen Speicherort entfernen: DriveName: \Users\UserName\AppData\Local:
%LocalAppData%\Microsoft\VisualStudio\10.0\Extensions
Siehe auch
Konzepte
Gewusst wie: Definieren eines Profils zum Erweitern von UML
Weitere Ressourcen
Gewusst wie: Definieren eines benutzerdefinierten Elements für die Modellerstellungstoolbox
Gewusst wie: Definieren von Validierungseinschränkungen für UML-Modelle
Gewusst wie: Definieren eines Menübefehls in einem Modellierungsdiagramm