Freigeben über


Elemente eines Projektmodells

Die Schnittstellen und Implementierungen aller Projekte in Visual Studio haben eine gemeinsame Grundstruktur: das Projektmodell für Ihren Projekttyp. In Ihrem Projektmodell, d. h. dem VSPackage, das Sie entwickeln, erstellen Sie Objekte, die Ihren Entwurfsentscheidungen entsprechen und mit den von der IDE bereitgestellten globalen Funktionen zusammenarbeiten. Sie haben zwar die Kontrolle darüber, wie ein Projektelement persistiert wird, aber Sie haben keine Kontrolle über die Benachrichtigung, dass eine Datei persistiert werden muss. Wenn ein Benutzer den Fokus auf ein geöffnetes Projektelement setzt und Speichern im Dateimenü in der Visual Studio-Menüleiste wählt, muss Ihr Projekttyp-Code den Befehl der IDE abfangen, die Datei beibehalten und eine Benachrichtigung an die IDE zurücksenden, dass die Datei nicht mehr geändert wird.

Ihr VSPackage interagiert mit der IDE über Dienste, die Zugriff auf die IDE-Schnittstellen bieten. Über bestimmte Dienste überwachen und leiten Sie beispielsweise Befehle weiter und stellen Kontextinformationen für die im Projekt getroffenen Auswahlen bereit. Die gesamte globale IDE-Funktionalität, die Sie für Ihr VSPackage benötigen, wird durch Dienste bereitgestellt. Weitere Informationen zu Diensten finden Sie unter Hilfe & Anleitung: Einen Dienst erhalten.

Sonstige Überlegungen zur Implementierung:

  • Ein einzelnes Projektmodell kann mehr als einen Projekttyp enthalten.

  • Projekttypen und die dazugehörigen Projektfabriken werden unabhängig voneinander mit GUIDs registriert.

  • Jedes Projekt muss über eine Vorlagendatei oder einen Assistenten zur Initialisierung der neuen Projektdatei verfügen, wenn ein Benutzer ein neues Projekt über die Visual Studio-Benutzeroberfläche erstellt. Zum Beispiel initialisieren die Visual C++-Vorlagen das, was schließlich zu .vcproj-Dateien wird.

    Die folgende Abbildung zeigt die wichtigsten Schnittstellen, Dienste und Objekte, aus denen eine typische Projektimplementierung besteht. Sie können die Anwendungshilfe HierUtil7 verwenden, um die zugrundeliegenden Objekte und andere Programmiervorlagen zu erstellen. Weitere Informationen über die Anwendungshilfe HierUtil7 finden Sie unter Verwenden von HierUtil7-Projektklassen zur Implementierung eines Projekttyps (C++).

    Visual Studio-Projektmodellgrafik

    Projektmodell

    Weitere Informationen zu den im vorherigen Diagramm aufgeführten Schnittstellen und Diensten sowie zu anderen optionalen Schnittstellen, die nicht im Diagramm enthalten sind, finden Sie unter Projektmodell-Kernkomponenten.

    Projekte können Befehle unterstützen und müssen daher die IOleCommandTarget-Schnittstelle implementieren, um am Befehlsrouting über die Befehlskontext-GUIDs teilzunehmen.