Im Visual Studio SDK

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

Erweiterbarkeits-Architektur

Die folgende Abbildung zeigt die Visual Studio-Erweiterbarkeits-Architektur. VSPackages bieten Anwendungsfunktionen, die über IDE als Dienste gemeinsam genutzt werden. Die Standard-IDE bietet auch eine breite Palette von Diensten, wie z. B. SVsUIShell, die den Zugriff auf die IDE-Fensterfunktionalität ermöglichen.

Umgebungsarchitektur-Grafiken

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 architektonische Einheit von Visual Studio. Weitere Informationen finden Sie unter VSPackages.

Visual Studio Shell

Die Visual Studio-Shell bietet allgemeine 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 Tipps für die Benutzerfreundlichkeit ansehen: Visual Studio-Richtlinien für die Benutzererfahrung.

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ü Tools ein benutzerdefinierter Befehl angezeigt, und ein Befehl zum Anzeigen eines Toolfensters wird im Untermenü Andere Fenster des Menüs Ansicht angezeigt.

Wenn Sie einen Befehl erstellen, müssen Sie auch einen Ereignishandler für diesen Befehl erstellen. Der Ereignishandler bestimmt, wann der Befehl angezeigt oder aktiviert wird, lässt Sie den zugehörigen Text ändern, und garantiert, dass der Befehl entsprechend reagiert, wenn er aktiviert wird. In den meisten Fällen verarbeitet die IDE Befehle über die IOleCommandTarget-Schnittstelle. Befehle in Visual Studio werden beginnend mit dem innersten Befehlskontext, basierend auf der lokalen Auswahl, bis zum äußersten Kontext, basierend auf der globalen Auswahl, gehandhabt. 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 normalerweise 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 Benutzeroberflächen-Elemente klickt. Einige bekannte Menünamen sind Datei, Bearbeiten, Ansicht und Fenster. Weitere Informationen finden Sie unter Menüs und Befehle erweitern.

Symbolleisten sind in der Regel Zeilen oder Spalten, in denen Tasten und andere Steuerelemente wie Kombinationsfelder, Listenfelder und Textfelder angezeigt werden. Symbolleistenschaltflächen enthalten normalerweise Symbolbilder, z. B. ein Ordnersymbol für einen Befehl Datei öffnen oder einen Drucker für einen Befehl Drucken. Allen Symbolleisten-Elementen sind Befehle zugeordnet. Wenn Sie auf eine Symbolleistenschaltfläche klicken, läuft der zugeordnete Befehl. Bei Dropdownlisten-Steuerelementen ist jedes Element in der Dropp-Down-Liste einem anderen Befehl zugeordnet. Einige Symbolleisten-Steuerelemente, 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 er angeklickt wird.

Toolfenster

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

Toolfenster bieten normalerweise 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:

Screenshot

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. Das Bild zeigt zwei weitere Toolfenster, das Fenster Fehlerliste und Ausgabe, die in einem einzelnen Bereich angedockt sind.

Außerdem wird der Hauptdokument-Bereich angezeigt, in dem mehrere Editorfenster angezeigt werden. Obwohl Toolfenster normalerweise nur eine Instance haben (z. B. können Sie nur einen Projektmappen-Explorer öffnen), können Editorfenster mehrere Instances aufweisen, die jeweils zum Bearbeiten eines separaten Dokuments verwendet werden, die aber alle im selben Bereich angedockt sind. Das Bild zeigt einen Dokumentbereich mit zwei Editorfenstern, einem Formulardesigner–Fenster. Alle Fenster im Dokumentenbereich sind durch Klicken auf Tabs verfügbar, aber das Editorfenster, das die Datei EditorPane.cs enthält, 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 Erweiterung und benutzerdefiniertes Tool-Fenster.

Dokumentfenster

Ein Dokumentfenster ist ein gerahmtes untergeordnetes Fenster eines Fensters Schnittstelle für mehrere Dokumente (MDI). Dokumentfenster werden normalerweise verwendet, um Text-Editoren, 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 Registerkarten-Gruppen angezeigt. Durch das Teilen des MDI-Bereichs können mehrere Dateien gleichzeitig angezeigt werden. Weitere Informationen finden Sie unter Dokumentfenster.

Editoren

Der Visual Studio-Editor ermöglicht es, ihn anzupassen und für Ihren eigenen Inhaltstyp zu verwenden, indem Sie das Managed Extensibility Framework (MEF) verwenden. In vielen Fällen müssen Sie kein 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 Sprachdienst-Erweiterungen.

Sprachdienste

Wenn Sie möchten, dass der Visual Studio-Editor neue Programmier-Schlüsselwörter 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 Syntaxhervorhebung, zugehörige Klammer, 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 Vorversion-Sprachdienst-Erweiterung.

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 sowie 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 binären Lösungsdatei mit Benutzeroptionen (.suo). Diese Dateien ähneln den Gruppendateien (VBG), die in früheren Versionen von Visual Basic verwendet wurden, sowie den Arbeitsbereichsdateien (.dws) 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 Galerie ist der Ort für Vorlagen und Erweiterungen.

Vorlagen enthalten die Projektstruktur und Basisdateien, 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 Projekt und Projekt-Elementvorlagen hinzufügen.

Eigenschaften und Optionen

Im Eigenschaftenfenster werden die Eigenschaften einzelner oder mehrerer ausgewählter Elemente angezeigt: Die Seiten der Optionen Erweiterten Eigenschaften enthält Sätze von Optionen, die sich auf eine bestimmte Komponente beziehen, z. B. eine Programmiersprache oder ein VSPackage: Optionen und Optionenseiten. Einstellungen sind im Allgemeinen Benutzeroberflächenbezogene 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 an, 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 Benutzeroberflächen-Ereignisse. Der Visual Studio-Editor stellt auch Dienste bereit, die von Editorerweiterungen importiert werden können. Weitere Informationen finden Sie unter Verwenden und Anbieten von Diensten.

Debugger

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

Quellcodeverwaltung

Informationen zum Implementieren eines Quellcodeverwaltungs-Plug-In 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 arbeiten zu können. Weitere Informationen finden Sie unter VSSDK-Utilities.

Verwenden des 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 mit Windows Installer.

Help Viewer

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