Im Visual Studio SDK

Dieser Abschnitt enthält ausführliche Informationen zu Visual Studio-Erweiterungen, einschließlich Visual Studio-Architektur, Komponenten, Dienste, Schemas, Hilfsprogramme und dergleichen.

Erweiterbarkeitsarchitektur

Die folgende Abbildung zeigt die Visual Studio-Erweiterbarkeitsarchitektur. VSPackages bieten Anwendungsfunktionen, die über die IDE als Dienste hinweg freigegeben werden. Die Standard-IDE bietet auch eine breite Palette von Diensten, z SVsUIShell. B. die Zugriff auf die IDE-Fensterfunktion.

Environment Architecture graphic Generalisierte Ansicht der Visual Studio-Architektur

VSPackages

VSPackages sind Softwaremodule, die Visual Studio um Benutzeroberflächenelemente, Dienste, Projekte, Editoren und Designer erweitern. VSPackages sind die zentrale Architektureinheit von Visual Studio. Weitere Informationen finden Sie unter VSPackages.

Visual Studio Shell

Die Visual Studio-Shell bietet grundlegende Funktionen und unterstützt die kommunikationübergreifende Kommunikation zwischen den Komponenten VSPackages und MEF-Erweiterungen. Weitere Informationen finden Sie unter Visual Studio Shell.

Richtlinien zur Benutzerfreundlichkeit

Wenn Sie planen, neue Features für Visual Studio zu entwerfen, sollten Sie sich die folgenden Richtlinien für Design- und Benutzerfreundlichkeitstipps ansehen: Visual Studio-Richtlinien für die Benutzeroberfläche.

Befehle

Befehle sind Funktionen, mit denen Aufgaben wie das Drucken eines Dokuments, das Aktualisieren einer Ansicht oder das Erstellen einer neuen Datei ausgeführt werden können.

Wenn Sie Visual Studio erweitern, können Sie Befehle erstellen und mit der Visual Studio-Shell registrieren. Sie können angeben, wie diese Befehle in der IDE angezeigt werden, z. B. in einem Menü oder einer Symbolleiste. Normalerweise wird im Menü "Extras" ein benutzerdefinierter Befehl angezeigt, und ein Befehl zum Anzeigen eines Toolfensters wird im Untermenü "Andere Windows" des Menüs "Ansicht" angezeigt.

Wenn Sie einen Befehl erstellen, müssen Sie auch einen Ereignishandler dafür erstellen. Der Ereignishandler bestimmt, wann der Befehl sichtbar oder aktiviert ist, ermöglicht es Ihnen, seinen Text zu ändern, und garantiert, dass der Befehl bei der Aktivierung entsprechend reagiert. In den meisten Fällen behandelt die IDE Befehle mithilfe der IOleCommandTarget Schnittstelle. Befehle in Visual Studio werden beginnend mit dem innersten Befehlskontext behandelt, basierend auf der lokalen Auswahl und dem äußersten Kontext, basierend auf der globalen Auswahl. Befehle, die dem Hauptmenü hinzugefügt werden, sind sofort für die Skripterstellung verfügbar.

Weitere Informationen finden Sie unter Befehle, Menüs und Symbolleisten.

Menüs und Symbolleisten bieten benutzern die Möglichkeit, Befehle aufzurufen. Menüs sind Zeilen oder Spalten von Befehlen, die in der Regel als einzelne Textelemente oben in einem Toolfenster angezeigt werden. Untermenüs sind sekundäre Menüs, die angezeigt werden, wenn ein Benutzer auf Befehle klickt, die einen kleinen Pfeil enthalten. Kontextmenüs werden angezeigt, wenn ein Benutzer mit der rechten Maustaste auf bestimmte UI-Elemente klickt. Einige gängige Menünamen sind "Datei", "Bearbeiten", "Ansicht" und "Fenster". Weitere Informationen finden Sie unter Erweitern von Menüs und Befehlen.

Symbolleisten sind Zeilen oder Spalten von Schaltflächen und anderen Steuerelementen, z. B. Kombinationsfelder, Listenfelder und Textfelder. Symbolleistenschaltflächen enthalten in der Regel Symbolbilder, z. B. ein Ordnersymbol für einen Befehl "Datei öffnen" oder einen Drucker für einen Befehl "Drucken ". Alle Symbolleistenelemente sind Befehlen zugeordnet. Wenn Sie auf eine Symbolleistenschaltfläche klicken, wird der zugehörige Befehl ausgeführt. Im Fall eines Dropdown-Steuerelements wird jedes Element in der Dropdownliste einem anderen Befehl zugeordnet. Einige Symbolleistensteuerelemente, z. B. ein Splitter-Steuerelement, sind Hybride. Eine Seite des Steuerelements ist eine Symbolleistenschaltfläche und die andere Seite ist ein Abwärtspfeil, der mehrere Befehle anzeigt, wenn darauf geklickt wird.

Toolfenster

Toolfenster werden in der IDE zum Anzeigen von Informationen verwendet. Toolbox, Projektmappen-Explorer, Eigenschaftenfenster und Webbrowser sind Beispiele für Toolfenster.

Toolfenster bieten in der Regel verschiedene Steuerelemente, mit denen der Benutzer interagieren kann. Im Eigenschaftenfenster kann der Benutzer beispielsweise Eigenschaften von Objekten festlegen, die einem bestimmten Zweck dienen. Das Eigenschaftenfenster ist in diesem Sinne spezialisiert, aber auch allgemein, da es in vielen verschiedenen Situationen verwendet werden kann. Entsprechend ist das Ausgabefenster spezialisiert, da es eine textbasierte Ausgabe bereitstellt, aber allgemein, da viele Subsysteme in Visual Studio es verwenden können, um die Ausgabe für den Visual Studio-Benutzer bereitzustellen.

Betrachten Sie das folgende Bild von Visual Studio, das mehrere Toolfenster enthält:

Screen shot

Einige der Toolfenster sind in einem einzelnen Bereich verankert, in dem das Projektmappen-Explorer Toolfenster angezeigt wird und die anderen Toolfenster ausgeblendet werden, sie aber durch Klicken auf Registerkarten verfügbar macht. Die Abbildung zeigt zwei weitere Toolfenster, das Fenster "Fehlerliste " und "Ausgabe ", das an einem einzelnen Bereich angedockt ist.

Außerdem wird der Standard Dokumentbereich angezeigt, in dem mehrere Editorfenster angezeigt werden. Obwohl Toolfenster in der Regel nur eine Instanz haben (z. B. können Sie nur eine Projektmappen-Explorer öffnen), können Editorfenster mehrere Instanzen aufweisen, die jeweils zum Bearbeiten eines separaten Dokuments verwendet werden, aber alle, die im selben Bereich verankert sind. Die Abbildung zeigt einen Dokumentbereich mit zwei Editorfenstern, einem Formular-Designerfenster. Alle Fenster im Dokumentbereich sind durch Klicken auf Registerkarten verfügbar, aber das Editorfenster mit der Datei "EditorPane.cs" ist sichtbar und aktiv.

Wenn Sie Visual Studio erweitern, können Sie Toolfenster erstellen, mit denen Visual Studio-Benutzer mit Ihrer Erweiterung interagieren können. Sie können auch eigene Editoren erstellen, mit denen Visual Studio-Benutzer Dokumente bearbeiten können. Da Ihre Toolfenster und -editoren in Visual Studio integriert werden, müssen Sie sie nicht so programmieren, dass sie angedockt oder auf einer Registerkarte ordnungsgemäß angezeigt werden. Wenn sie in Visual Studio ordnungsgemäß registriert sind, verfügen sie automatisch über die typischen Features von Toolfenstern und Dokumentfenstern in Visual Studio. Weitere Informationen finden Sie unter Erweitern und Anpassen von Tool-Windows.

Dokumentfenster

Ein Dokumentfenster ist ein rahmenfähiges untergeordnetes Fenster eines MDI-Fensters (Multiple-Document Interface). Dokumentfenster werden in der Regel verwendet, um Texteditoren, Formular-Editoren (auch als Designer bezeichnet) oder Bearbeitungssteuerelemente zu hosten, aber sie können auch andere funktionale Typen hosten. Das Dialogfeld "Neue Datei " enthält Beispiele für Dokumentfenster, die Visual Studio bereitstellt.

Die meisten Editoren sind spezifisch für eine Programmiersprache oder für einen Dateityp, z. B. HTML-Seiten, Framesets, C++-Dateien oder Headerdateien. Durch Auswählen einer Vorlage im Dialogfeld "Neue Datei " erstellt ein Benutzer dynamisch ein Dokumentfenster für den Editor für den Dateityp, der der Vorlage zugeordnet ist. Ein Dokumentfenster wird auch erstellt, wenn ein Benutzer eine vorhandene Datei öffnet.

Dokumentfenster sind auf den MDI-Clientbereich beschränkt. Jedes Dokumentfenster verfügt über eine Registerkarte oben, und die Aktivierreihenfolge ist mit anderen Fenstern verknüpft, die möglicherweise im MDI-Bereich geöffnet sind. Wenn Sie mit der rechten Maustaste auf die Registerkarte eines Dokumentfensters klicken, wird ein Kontextmenü mit Optionen zum Aufteilen des MDI-Bereichs in mehrere horizontale oder vertikale Registerkartengruppen angezeigt. Durch das Teilen des MDI-Bereichs können mehrere Dateien gleichzeitig angezeigt werden. Weitere Informationen finden Sie unter "Document Windows".

Editoren

Mit dem Visual Studio-Editor können Sie sie anpassen und für Ihren eigenen Inhaltstyp verwenden, indem Sie das Managed Extensibility Framework (MEF) verwenden. In vielen Fällen müssen Sie keinen VSPackage erstellen, um den Editor zu erweitern. Wenn Sie Features aus der Shell einschließen möchten (z. B. ein Menübefehl oder eine Tastenkombination), können Sie eine MEF-Erweiterung mit einem VSPackage kombinieren.

Sie können auch einen benutzerdefinierten Editor erstellen, z. B. wenn Sie eine Datenbank lesen und schreiben möchten oder wenn Sie einen Designer verwenden möchten. Sie können auch einen externen Editor wie Editor oder Microsoft WordPad verwenden. Weitere Informationen finden Sie unter Editor- und Sprachdiensterweiterungen.

Sprachdienste

Wenn Sie möchten, dass der Visual Studio-Editor neue Programmier-Schlüsselwort (keyword) oder sogar eine neue Programmiersprache unterstützt, erstellen Sie einen Sprachdienst. Jeder Sprachdienst kann bestimmte Editorfeatures vollständig, teilweise oder gar nicht implementieren. Je nachdem, wie er konfiguriert ist, kann der Sprachdienst Syntaxheraushebung, Klammerabgleich, IntelliSense-Unterstützung und andere Features im Editor bereitstellen.

Im Mittelpunkt eines Sprachdiensts stehen ein Parser und ein Scanner. Ein Scanner (oder Lexer) teilt eine Quelldatei in Elemente auf, die als Token bezeichnet werden, und ein Parser stellt die Beziehungen zwischen diesen Token her. Wenn Sie einen Sprachdienst erstellen, müssen Sie den Parser und den Scanner implementieren, damit Visual Studio die Token und Grammatik der Sprache verstehen kann. Sie können verwaltete oder nicht verwaltete Sprachdienste erstellen. Weitere Informationen finden Sie unter Legacy Language Service Extensibility.

Projekte

In Visual Studio sind Projekte die Container, die Entwickler zum Organisieren und Erstellen des Quellcodes und anderer Ressourcen verwenden. Mit Projekten können Sie Quellcode, Verweise auf Webdienste und Datenbanken und andere Ressourcen organisieren, erstellen, debuggen und bereitstellen. VSPackages können das Visual Studio-Projektsystem erweitern, indem Projekttypen, Projektuntertypen und benutzerdefinierte Tools bereitgestellt werden.

Projekte können auch in einer Lösung zusammengefasst werden, bei der es sich um eine Gruppierung eines oder mehrerer Projekte handelt, die zusammen arbeiten, um eine Anwendung zu erstellen. Projekt- und Statusinformationen, die sich auf die Lösung beziehen, werden in zwei Lösungsdateien gespeichert, der textbasierten Lösungsdatei (SLN) und der Benutzeroptionsdatei für binäre Lösungen (SUO). Diese Dateien ähneln den Gruppendateien (VBG), die in früheren Versionen von Visual Basic verwendet wurden, sowie den Arbeitsbereichsdateien (DSW) und Benutzeroptionendateien (OPT), die in früheren Versionen von C++ verwendet wurden.

Weitere Informationen finden Sie unter "Projekte und Lösungen".

Projekt- und Elementvorlagen

Visual Studio enthält vordefinierte Projektvorlagen und Projektelementvorlagen. Sie können auch eigene Vorlagen erstellen oder Vorlagen aus der Community erwerben und diese dann in Visual Studio integrieren. Der MSDN Code Gallery ist der Ort für Vorlagen und Erweiterungen.

Vorlagen enthalten die Projektstruktur und grundlegende Dateien, die zum Erstellen einer bestimmten Art von Anwendung, Steuerelement, Bibliothek oder Klasse erforderlich sind. Wenn Sie Software entwickeln möchten, die einer der Vorlagen ähnelt, erstellen Sie ein Projekt, das auf der Vorlage basiert, und ändern Sie dann die Dateien in diesem Projekt.

Hinweis

Diese Vorlagenarchitektur wird für Visual C++-Projekte nicht unterstützt.

Weitere Informationen finden Sie unter Hinzufügen von Projekt- und Projektelementvorlagen.

Eigenschaften und Optionen

Im Eigenschaftenfenster werden die Eigenschaften einzelner oder mehrerer ausgewählter Elemente angezeigt: Die Erweiterung von Eigenschaftenoptionenseiten enthält Sätze von Optionen, die sich auf eine bestimmte Komponente beziehen, z. B. eine Programmiersprache oder ein VSPackage: Options and Options Pages. Einstellungen sind im Allgemeinen UI-bezogene Features, die importiert und exportiert werden können: Unterstützung für benutzer Einstellungen.

Visual Studio Services

Ein Dienst bietet einen bestimmten Satz von Schnittstellen für komponenten, die verwendet werden sollen. Visual Studio stellt eine Reihe von Diensten bereit, die von allen Komponenten verwendet werden können, einschließlich Erweiterungen. Visual Studio-Dienste ermöglichen z. B. das dynamische Anzeigen oder Ausblenden von Toolfenstern, ermöglichen den Zugriff auf Hilfe-, Statusleisten- oder UI-Ereignisse. Der Visual Studio-Editor stellt auch Dienste bereit, die von Editorerweiterungen importiert werden können. Weitere Informationen finden Sie unter Verwenden und Bereitstellen von Diensten.

Debugger

Der Debugger ist die Benutzeroberfläche für die sprachspezifischen Debugkomponenten. Wenn Sie einen neuen Sprachdienst erstellt haben, müssen Sie ein bestimmtes Debugmodul erstellen, um sich mit dem Debugger zu verbinden. Weitere Informationen finden Sie unter Visual Studio Debugger Extensibility.

Quellcodeverwaltung

Informationen zum Implementieren eines Quellcodeverwaltungs-Plug-Ins oder VSPackage finden Sie unter Quellcodeverwaltung.

Assistenten

Sie können einen Assistenten in Verbindung mit einem neuen Projekttyp erstellen, damit der Assistent Ihren Benutzern helfen kann, die richtigen Entscheidungen zu treffen, wenn sie ein neues Projekt dieses Typs erstellen. Weitere Informationen finden Sie unter Assistenten.

Benutzerdefinierte Tools

Mit benutzerdefinierten Tools können Sie ein Tool einem Element in einem Projekt zuordnen und dieses Tool immer dann ausführen, wenn die Datei gespeichert wird. Weitere Informationen finden Sie unter "Benutzerdefinierte Tools".

VSSDK-Hilfsprogramme

Der VSSDK enthält eine Reihe von Dienstprogrammen, die Sie möglicherweise benötigen, um mit verschiedenen Aspekten von VSPackages zu arbeiten. Weitere Informationen finden Sie unter VSSDK Utilities.

Verwenden von Windows Installer

In einigen Fällen müssen Sie möglicherweise das Windows Installer anstelle des VSIX-Installers verwenden: Sie müssen z. B. in die Registrierung schreiben. Informationen zur Verwendung von Windows Installer mit Ihren Erweiterungen finden Sie unter Installieren von VSPackages With Windows Installer.

Help Viewer

Sie können Ihre eigenen Hilfe- und F1-Seiten in den Hilfe-Viewer integrieren. Weitere Informationen finden Sie im Microsoft Help Viewer SDK.