Share via


Übersicht über das Programmiermodell von Erweiterungen für SharePoint-Tools

Beim Erstellen einer Erweiterung für die SharePoint-Tools in Visual Studio 2010 implementieren Sie zunächst eine oder mehrere Erweiterungsschnittstellen, die von den SharePoint-Tools verfügbar gemacht werden. In den meisten Fällen implementieren Sie Funktionen in der Erweiterung auch mit andere Typen, die von den SharePoint-Tools bereitgestellt werden. In einigen Szenarien können auch Typen in anderen Objektmodellen verwendet werden, die von Visual Studio und SharePoint bereitgestellt werden. Sie müssen wissen, für welchen Zweck die einzelnen Objektmodelle erstellt wurden und wie sie zusammen verwendet werden können, um Erweiterungen für die SharePoint-Tools zu erstellen.

Erweitern der SharePoint-Tools durch Implementieren von Erweiterungsschnittstellen

Visual Studio stellt das Erweiterbarkeitsmodell für die SharePoint-Tools mit dem Managed Extensibility Framework (MEF) in .NET Framework 4 bereit. MEF ist eine (in der System.ComponentModel.Compositions-Assembly implementierte) API, mit der Anwendungen Erweiterungspunkte verfügbar machen sowie Erweiterungen zur Laufzeit erkennen und laden können. Weitere Informationen über MEF finden Sie unter Übersicht über Managed Extensibility Framework.

Um die SharePoint-Tools zu erweitern, implementieren Sie eine oder mehrere von Visual Studio verfügbar gemachte Erweiterungsschnittstellen. Außerdem müssen Sie das System.ComponentModel.Composition.ExportAttribute sowie ggf. weitere spezifische Attribute für SharePoint-Tools auf ihre Schnittstellenimplementierung anwenden. In der folgenden Tabelle sind die Schnittstellen aufgeführt, die Sie implementieren können, um die SharePoint-Tools zu erweitern.

Schnittstelle

Beschreibung

ISharePointProjectItemTypeProvider

Implementieren Sie diese Schnittstelle, um einen neuen Typ des SharePoint-Projektelements zu definieren. Ein Beispiel finden Sie unter Gewusst wie: Definieren eines SharePoint-Projektelementtyps.

ISharePointProjectItemTypeExtension

Implementieren Sie diese Schnittstelle, um einen Typ des SharePoint-Projektelements zu erweitern, das bereits in Visual Studio installiert ist. Ein Beispiel finden Sie unter Gewusst wie: Erstellen einer SharePoint-Projektelementerweiterung.

ISharePointProjectExtension

Implementieren Sie diese Schnittstelle, um SharePoint-Projekte zu erweitern. Ein Beispiel finden Sie unter Gewusst wie: Erstellen einer SharePoint-Projekterweiterung.

IDeploymentStep

Implementieren Sie diese Schnittstelle, um einen neuen Bereitstellungsschritt zu definieren, der ausgeführt werden kann, wenn ein SharePoint-Projektelement bereitgestellt oder zurückgezogen wird. Ein Beispiel finden Sie unter Exemplarische Vorgehensweise: Erstellen eines benutzerdefinierten Bereitstellungsschritts für SharePoint-Projekte.

IExplorerNodeTypeExtension

Implementieren Sie diese Schnittstelle, um einen vorhandenen Knoten unter dem Knoten SharePoint-Verbindungen im Fenster Server Explorer zu erweitern. Ein Beispiel finden Sie unter Gewusst wie: Erweitern eines SharePoint-Knotens im Server-Explorer.

IExplorerNodeTypeProvider

Implementieren Sie diese Schnittstelle, um einen neuen Knotentyp unter dem Knoten SharePoint-Verbindungen im Fenster Server-Explorer zu definieren. Ein Beispiel finden Sie unter Gewusst wie: Erweitern eines SharePoint-Knotens im Server-Explorer.

IFeatureValidationRule

Implementieren Sie diese Schnittstelle, um eine benutzerdefinierte Funktionsvalidierungsregel zu definieren. Ein Beispiel finden Sie unter Gewusst wie: Erstellen von benutzerdefinierten Funktions- und Paketvalidierungsregeln für SharePoint-Lösungen.

IPackageValidationRule

Implementieren Sie diese Schnittstelle, um eine benutzerdefinierte Paketvalidierungsregel zu definieren. Ein Beispiel finden Sie unter Gewusst wie: Erstellen von benutzerdefinierten Funktions- und Paketvalidierungsregeln für SharePoint-Lösungen.

Nachdem Sie eine Erweiterung der SharePoint-Tools implementiert haben, müssen Sie die Erweiterungsassembly in einem Visual Studio-Erweiterungspaket (VSIX) bereitstellen, damit die Erweiterung von Visual Studio erkannt und geladen werden kann. Weitere Informationen finden Sie unter Bereitstellen von Erweiterungen für die SharePoint-Tools in Visual Studio.

Grundlegendes zu den Objektmodellen in SharePoint-Toolerweiterungen

Beim Erstellen von Erweiterungen für SharePoint-Tools können Sie verschiedene Objektmodelle verwenden:

  • SharePoint-Tools-Objektmodell. Dieses Objektmodell stellt die Erweiterungsschnittstellen bereit, die implementiert werden, um SharePoint-Tools-Erweiterungen und andere verwandte Typen zu erstellen.

  • Automatisierungs- und Integrationsobjektmodelle von Visual Studio. Mit diesen Objektmodellen können Sie auf Visual Studio-Funktionen zugreifen, die über den Rahmen des SharePoint-Tools-Objektmodells hinausgehen.

    Tipp

    Mithilfe des SharePoint-Projektdiensts können einige der Objekte im SharePoint-Tools-Objektmodell in Objekte in den Automatisierungs- und Integrationsobjektmodellen von Visual Studio konvertiert werden und umgekehrt. Weitere Informationen finden Sie unter Konvertieren zwischen SharePoint-Projektsystemtypen und anderen Visual Studio-Projekttypen.

  • Server- und Clientobjektmodelle von SharePoint. Mit diesen Objektmodellen können Sie eine SharePoint-Website ändern oder Daten aus einer SharePoint-Website im Kontext einer SharePoint-Tools-Erweiterung abrufen.

SharePoint-Tools-Objektmodell

In jeder SharePoint-Tools-Erweiterung wird mit Typen im SharePoint-Tools-Objektmodell das Kernverhalten und die Kernfunktionen der Erweiterung definiert. In der folgenden Tabelle werden die Namespaces beschrieben, die in diesem Objektmodell enthalten sind.

Assembly

Namespace

Beschreibung

Microsoft.VisualStudio.SharePoint.dll

Microsoft.VisualStudio.SharePoint

Enthält Typen, mit denen Sie das SharePoint-Projektsystem erweitern und automatisieren können. Sie können z. B. die integrierten SharePoint-Projekte und -Projektelemente erweitern, oder Sie können eigene Projektelemente erstellen. Weitere Informationen finden Sie unter Erweitern des SharePoint-Projektsystems.

Microsoft.VisualStudio.SharePoint.Deployment

Enthält Typen, mit denen Sie den Bereitstellungsprozess für SharePoint-Projekte erweitern können, beispielsweise durch Erstellen eigener Bereitstellungsschritte und Bereitstellungskonfigurationen. Weitere Informationen finden Sie unter Erweitern von SharePoint-Packen und -Bereitstellen.

Microsoft.VisualStudio.SharePoint.Explorer

Enthält Typen, mit denen Sie Knoten unter dem Knoten SharePoint-Verbindungen im Fenster Server-Explorer erweitern oder neue Knotentypen definieren können. Weitere Informationen finden Sie unter Erweitern des SharePoint-Verbindungsknotens im Server-Explorer.

Microsoft.VisualStudio.SharePoint.Features

Enthält Typen, mit denen Sie in einem SharePoint-Projekt auf die Definition von Funktionen zugreifen können.

Microsoft.VisualStudio.SharePoint.Packages

Enthält Typen, mit denen Sie auf die Paketdefinition in einer SharePoint-Lösung zugreifen können.

Microsoft.VisualStudio.SharePoint.Validation

Enthält Typen, mit denen Sie das Funktions- und Paketvalidierungsverhalten für SharePoint-Projekte anpassen können. Weitere Informationen finden Sie unter Gewusst wie: Erstellen von benutzerdefinierten Funktions- und Paketvalidierungsregeln für SharePoint-Lösungen.

Microsoft.VisualStudio.SharePoint.Commands.dll

Microsoft.VisualStudio.SharePoint.Commands

Enthält Typen, mit denen Sie benutzerdefinierte SharePoint-Befehle erstellen können. Ein SharePoint-Befehl ist eine Methode, die einen Aufruf in das SharePoint-Serverobjektmodell von einer SharePoint-Tools-Erweiterung aus durchführt. Weitere Informationen finden Sie unter Aufrufe in die SharePoint-Objektmodelle.

Microsoft.VisualStudio.SharePoint.Explorer.Extensions.dll

Microsoft.VisualStudio.SharePoint.Explorer.Extensions

Enthält Typen, mit denen Sie Informationen zu integrierten Server-Explorer-Knoten abrufen können, die einzelne Komponenten in einer SharePoint-Website darstellen, z. B. ein Knoten, der eine Liste, ein Feld oder einen Inhaltstyp darstellt. Weitere Informationen finden Sie unter Erweitern des SharePoint-Verbindungsknotens im Server-Explorer.

Visual Studio-Automatisierungsobjektmodell

Das Automatisierungsobjektmodell von Visual Studio stellt APIs bereit, mit denen Sie Visual Studio-Projekte und die IDE automatisieren können. Führen Sie projektbezogene Aufgaben, die nicht spezifisch für SharePoint-Projekte sind, oder andere allgemeine Automatisierungsaufgaben in Visual Studio mit diesem Visual Studio-Objektmodell aus. Traditionell wird dieses Objektmodell häufig in Visual Studio-Add-Ins und Makros verwendet, Sie können es aber auch in SharePoint-Tools-Erweiterungen verwenden.

Der Hauptteil des Visual Studio-Automatisierungsobjektmodells ist in der EnvDTE.dll-Assembly definiert. Zusätzliche Funktionalität, die in Visual Studio 2005, Visual Studio 2008 und Visual Studio 2010 eingeführt wurde, wird durch die Assemblys EnvDTE80.dll, EnvDTE90.dll und EnvDTE100.dll bereitgestellt. Diese Assemblys sind in Visual Studio 2010 enthalten.

Weitere Informationen zum Automatisierungsobjektmodell finden Sie unter Erweitern der Visual Studio-Umgebung und Referenz zur Automatisierung und Erweiterbarkeit.

Visual Studio-Integrationsobjektmodell

Das Integrationsobjektmodell stellt APIs bereit, mit denen Sie durch das Erstellen eines VSPackages Visual Studio-Funktionen hinzufügen können. Ein VSPackage ist ein Modul, das die Visual Studio IDE durch benutzerdefinierte Funktionen wie Toolfenster, Editoren, Designer, Dienste und Projekte erweitert.

Sie können das Integrationsobjektmodell verwenden, wenn Sie eine neue Visual Studio-Funktion hinzufügen möchten, die zusammen mit den integrierten SharePoint-Tools verwendet wird. Wenn Sie z. B. ein benutzerdefiniertes SharePoint-Projektelement erstellen, das eine benutzerdefinierte Aktion für eine SharePoint-Website darstellt, können Sie auch ein VSPackage erstellen, das einen Designer für die benutzerdefinierte Aktion implementiert. Sie können die benutzerdefinierten Aktion dem Designer zuordnen, indem Sie dem Projektelement, das die benutzerdefinierte Aktion darstellt, im Projektmappen-Explorer ein Kontextmenüelement hinzufügen. Entwickler können mit der rechten Maustaste auf das benutzerdefinierte Aktionsprojektelement klicken, um den Designer zu öffnen.

Dieses Objektmodell ist in einem Satz mehrerer Assemblys definiert, die im Visual Studio-SDK enthalten sind. Einige der Hauptassemblys in diesem Objektmodell sind Microsoft.VisualStudio.Shell.dll, Microsoft.VisualStudio.Shell.Interop.dll und Microsoft.VisualStudio.OLE.Interop.dll.

Weitere Informationen zum Integrationsobjektmodell finden Sie unter Visual Studio Development Environment Model und Visual Studio SDK Reference.

SharePoint-Objektmodelle

SharePoint-Tools-Erweiterungen können SharePoint-APIs verwenden, um eine SharePoint-Website zu ändern oder Daten von einer SharePoint-Website abzurufen. Microsoft SharePoint Foundation 2010 und Microsoft SharePoint Server 2010 stellen zwei unterschiedliche Objektmodelle bereit: ein Serverobjektmodell und ein Clientobjektmodell.

Sie können APIs aus beiden Objektmodellen in einer SharePoint-Tools-Erweiterung verwenden, beide Objektmodelle haben aber bestimmte Vorteile und Nachteile im Kontext der SharePoint-Tools Erweiterungen. Weitere Informationen finden Sie unter Aufrufe in die SharePoint-Objektmodelle.

Objektmodell

Beschreibung

Serverobjektmodell

Das Serverobjektmodell bietet Zugriff auf alle Funktionen, die Microsoft SharePoint Foundation 2010 und Microsoft SharePoint Server 2010 programmgesteuert verfügbar machen. Dieses Objektmodell wurde für SharePoint-Lösungen entworfen, die auf dem SharePoint-Server ausgeführt werden. Die Großteil dieses Objektmodells ist in der Microsoft.SharePoint.dll-Assembly definiert. Weitere Informationen zum Serverobjektmodell finden Sie im Thema zur Verwendung des serverseitigen SharePoint Foundation-Objektmodells (möglicherweise in englischer Sprache).

Clientobjektmodell

Das Clientobjektmodell ist eine Teilmenge des Serverobjektmodells und kann verwendet werden, um die SharePoint-Daten auf einem Remoteclient oder einem Server zu verarbeiten. Beim Entwurf wurde darauf geachtet, die Anzahl der Roundtrips zu minimieren, die zum Ausführen häufiger Aufgaben notwendig ist. Die Großteil des Clientobjektmodells ist in der Microsoft.SharePoint.Client.dll-Assembly und der Microsoft.SharePoint.Client.Runtime.dll-Assembly definiert. Weitere Informationen zum Clientobjektmodell finden Sie im Thema zum verwalteten Clientobjektmodell (möglicherweise in englischer Sprache).

Siehe auch

Konzepte

Aufrufe in die SharePoint-Objektmodelle

Visual Studio Development Environment Model

Verwenden des SharePoint-Projektdiensts

Weitere Ressourcen

Erweitern der SharePoint-Tools in Visual Studio

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

Mai 2010

Neue Informationen zu den MEF-Schnittstellen hinzugefügt, die vom SharePoint-Tools-Objektmodell verfügbar gemacht werden.

Informationsergänzung.