Partager via


Vue d'ensemble du modèle de programmation des extensions d'outils SharePoint

Lorsque vous créez une extension des outils SharePoint dans Visual Studio 2010, vous commencez par implémenter une ou plusieurs interfaces d'extensibilité qui sont exposées par les outils SharePoint. Dans la plupart des cas, vous utiliserez également d'autres types fournis par les outils SharePoint pour implémenter des fonctionnalités dans votre extension. Dans certains scénarios, vous pouvez également utiliser des types dans d'autres modèles d'objet fournis par Visual Studio et SharePoint. Vous devez comprendre l'objectif de chaque modèle d'objet et savoir comment les utiliser les uns avec les autres pour créer des extensions pour les outils SharePoint.

Extension des outils SharePoint en implémentant des interfaces d'extensibilité

Visual Studio utilise MEF (Managed Extensibility Framework) dans le .NET Framework 4 pour fournir le modèle d'extensibilité pour les outils SharePoint. MEF est une API (implémentée dans l'assembly System.ComponentModel.Composition) qui permet aux applications d'exposer des points d'extensibilité et de découvrir et de charger des extensions au moment de l'exécution. Pour plus d'informations sur MEF, consultez Vue d'ensemble de Managed Extensibility Framework.

Pour étendre les outils SharePoint, implémentez une ou plusieurs interfaces d'extensibilité qui sont exposées par Visual Studio. Vous devez également appliquer l'attribut System.ComponentModel.Composition.ExportAttribute et des attributs supplémentaires spécifiques aux outils SharePoint si nécessaire, à l'implémentation de votre interface. Le tableau suivant répertorie les interfaces que vous pouvez implémenter pour étendre les outils SharePoint.

Interface

Description

ISharePointProjectItemTypeProvider

Implémentez cette interface pour définir un nouveau type d'élément de projet SharePoint. Pour obtenir un exemple, consultez Comment : définir un type d'élément de projet SharePoint.

ISharePointProjectItemTypeExtension

Implémentez cette interface pour étendre un type d'élément de projet SharePoint déjà installé dans Visual Studio. Pour obtenir un exemple, consultez Comment : créer une extension d'élément de projet SharePoint.

ISharePointProjectExtension

Implémentez cette interface pour étendre des projets SharePoint. Pour obtenir un exemple, consultez Comment : créer une extension de projet SharePoint.

IDeploymentStep

Implémentez cette interface pour définir une nouvelle étape de déploiement qui peut être exécutée lorsqu'un élément de projet SharePoint est déployé ou retiré. Pour obtenir un exemple, consultez Procédure pas à pas : création d'une étape de déploiement personnalisée pour des projets SharePoint.

IExplorerNodeTypeExtension

Implémentez cette interface pour étendre un nœud existant sous le nœud Connexions SharePoint dans la fenêtre Explorateur de serveurs. Pour obtenir un exemple, consultez Comment : étendre un nœud SharePoint dans l'Explorateur de serveurs.

IExplorerNodeTypeProvider

Implémentez cette interface pour définir un nouveau type de nœud sous le noeud Connexions SharePoint dans la fenêtre Explorateur de serveurs. Pour obtenir un exemple, consultez Comment : étendre un nœud SharePoint dans l'Explorateur de serveurs.

IFeatureValidationRule

Implémentez cette interface pour définir une règle de validation des fonctionnalités personnalisée. Pour obtenir un exemple, consultez Comment : créer des règles de validation de fonctionnalité et de package personnalisées pour les solutions SharePoint.

IPackageValidationRule

Implémentez cette interface pour définir une règle de validation des packages personnalisée. Pour obtenir un exemple, consultez Comment : créer des règles de validation de fonctionnalité et de package personnalisées pour les solutions SharePoint.

Une fois que vous avez implémenté une extension des outils SharePoint, vous devez déployer l'assembly d'extension dans un package d'extension (VSIX) Visual Studio pour permettre à Visual Studio d'identifier et de charger l'extension. Pour plus d'informations, consultez Déploiement d'extensions pour les outils SharePoint dans Visual Studio.

Présentation des modèles d'objet utilisés dans les extensions d'outils SharePoint

Il existe plusieurs modèles d'objet que vous pouvez utiliser lorsque vous créez des extensions pour les outils SharePoint :

  • Modèle d'objet des outils SharePoint. Ce modèle d'objet fournit des interfaces d'extensibilité que vous implémentez pour créer des extensions d'outils SharePoint et d'autres types connexes.

  • Modèles d'objet Automation et Intégration de Visual Studio. Utilisez ces modèles d'objet pour accéder aux fonctionnalités Visual Studio qui dépassent le cadre du modèle d'objet des outils SharePoint.

    Notes

    Vous pouvez effectuer des conversions d'objets du modèle d'objet Outils SharePoint aux modèles d'objet Intégration et Automation Visual Studio et vice versa, grâce au service du projet SharePoint. Pour plus d'informations, consultez Conversion entre des types d'un système de projet SharePoint et d'autres types de projets Visual Studio.

  • Modèles d'objet serveur et client SharePoint. Utilisez ces modèles d'objet pour modifier un site SharePoint ou pour extraire des données d'un site SharePoint à partir du contexte d'une extension d'outils SharePoint.

Modèle d'objet des outils SharePoint

Chaque extension d'outils SharePoint utilise des types dans le modèle d'objet d'outils SharePoint pour définir le comportement principal et les fonctionnalités de l'extension. Le tableau suivant décrit les espaces de noms inclus dans ce modèle d'objet.

Assembly

Espace de noms

Description

Microsoft.VisualStudio.SharePoint.dll

Microsoft.VisualStudio.SharePoint

Contient les types vous permettant d'étendre et d'automatiser le système de projet SharePoint. Vous pouvez, par exemple, étendre les projets et les éléments de projet SharePoint intégrés ou créer vos propres éléments de projet. Pour plus d'informations, consultez Extension du système de projet SharePoint.

Microsoft.VisualStudio.SharePoint.Deployment

Contient les types utilisés pour étendre le processus de déploiement des projets SharePoint, tels que la création de vos propres étapes de déploiement et des configurations de déploiement. Pour plus d'informations, consultez Extension de la création de packages et du déploiement SharePoint.

Microsoft.VisualStudio.SharePoint.Explorer

Contient les types utilisés pour étendre les nœuds sous le nœud Connexions SharePoint dans la fenêtre Explorateur de serveurs, ou pour définir de nouveaux types de nœuds. Pour plus d'informations, consultez Extension du nœud Connexions SharePoint dans l'Explorateur de serveurs.

Microsoft.VisualStudio.SharePoint.Features

Contient les types vous permettant d'accéder aux définitions des fonctionnalités d'un projet SharePoint.

Microsoft.VisualStudio.SharePoint.Packages

Contient les types dont vous avez besoin pour accéder à la définition de package dans une solution SharePoint.

Microsoft.VisualStudio.SharePoint.Validation

Contient les types dont vous avez besoin pour personnaliser le comportement de validation des fonctionnalités et des packages des projets SharePoint. Pour plus d'informations, consultez Comment : créer des règles de validation de fonctionnalité et de package personnalisées pour les solutions SharePoint.

Microsoft.VisualStudio.SharePoint.Commands.dll

Microsoft.VisualStudio.SharePoint.Commands

Offre les types nécessaires à la création de commandes SharePoint personnalisées. Une commande SharePoint est une méthode qui fait appel au modèle d'objet serveur SharePoint d'une extension d'outils SharePoint. Pour plus d'informations, consultez Appel des modèles d'objet SharePoint.

Microsoft.VisualStudio.SharePoint.Explorer.Extensions.dll

Microsoft.VisualStudio.SharePoint.Explorer.Extensions

Contient les types vous permettant d'obtenir des informations sur des nœuds intégrés de l'Explorateur de serveurs qui représentent des composants individuels d'un site SharePoint, tels qu'un nœud représentant une liste, un champ ou un type de contenu. Pour plus d'informations, consultez Extension du nœud Connexions SharePoint dans l'Explorateur de serveurs.

Modèle d'objet Automation Visual Studio

Le modèle d'objet Automation de Visual Studio fournit des API que vous pouvez utiliser pour automatiser les projets Visual Studio et l'IDE. Servez-vous du modèle d'objet Visual Studio pour exécuter des tâches ayant trait aux projets, mais non spécifiques aux projets SharePoint, ou pour effectuer d'autres tâches d'automatisation générales dans Visual Studio. Ce modèle d'objet est habituellement réservé aux compléments et macros Visual Studio, mais vous pouvez également l'utiliser dans les extensions d'outils SharePoint.

La partie principale du modèle d'objet Automation Visual Studio est définie dans l'assembly EnvDTE.dll. La fonctionnalité supplémentaire introduite dans Visual Studio 2005, Visual Studio 2008 et Visual Studio 2010 est fournie par les assemblys EnvDTE80.dll, EnvDTE90.dll et EnvDTE100.dll. Ces assemblys sont inclus avec Visual Studio 2010.

Pour plus d'informations au sujet du modèle d'objet Automation, consultez Extension de l'environnement Visual Studio et Guide de référence de l'extensibilité et de l'automation.

Modèle d'objet Intégration Visual Studio

Le modèle d'objet Intégration fournit des API permettant d'ajouter des fonctionnalités à Visual Studio en créant un VSPackage. Un VSPackage est un module conçu pour étendre l'environnement de développement intégré (IDE) Visual Studio en mettant à votre disposition des fonctionnalités personnalisées telles que des fenêtres Outil, des éditeurs, des concepteurs, des services et des projets.

Le modèle d'objet Intégration présente un intérêt si vous avez l'intention d'ajouter une nouvelle fonctionnalité Visual Studio destinée à être utilisée avec les outils SharePoint intégrés. Si vous créez, par exemple, un élément de projet SharePoint personnalisé représentant une action personnalisée pour un site SharePoint, vous pouvez également prévoir un VSPackage chargé d'implémenter un concepteur pour l'action personnalisée. Pour associer le concepteur à l'action personnalisée, ajoutez un élément de menu contextuel à l'élément de projet représentant l'action personnalisée dans l'Explorateur de solutions. Il suffira aux développeurs de cliquer avec le bouton droit sur l'élément de projet de l'action personnalisée pour ouvrir votre concepteur.

Ce modèle d'objet est défini dans un jeu d'assemblys inclus avec le Kit de développement Visual Studio SDK. Microsoft.VisualStudio.Shell.dll, Microsoft.VisualStudio.Shell.Interop.dll et Microsoft.VisualStudio.OLE.Interop.dll font partie de quelques-uns des principaux assemblys dans ce modèle objet.

Pour plus d'informations au sujet du modèle d'objet Intégration, consultez Visual Studio Development Environment Model et Visual Studio SDK Reference.

Modèles d'objet SharePoint

Les extensions d'outils SharePoint peuvent utiliser des API SharePoint pour modifier un site SharePoint ou récupérer des données d'un site SharePoint. Microsoft SharePoint Foundation 2010 et Microsoft SharePoint Server 2010 fournissent deux modèles d'objets différents : un modèle d'objet serveur et un modèle d'objet client.

Vous êtes libre de faire appel aux API dans l'un ou l'autre des modèles d'objet au sein d'une extension d'outils SharePoint, mais chaque modèle d'objet possède ses propres avantages et inconvénients dans le contexte d'extensions d'outils SharePoint. Pour plus d'informations, consultez Appel des modèles d'objet SharePoint.

Modèle d'objet

Description

Modèle d'objet serveur

Le modèle d'objet serveur donne accès à toutes les fonctionnalités exposées par programmation par Microsoft SharePoint Foundation 2010 et Microsoft SharePoint Server 2010. Ce modèle d'objet est destiné aux solutions SharePoint s'exécutant sur le serveur SharePoint. La plus grande partie de ce modèle d'objet est définie dans l'assembly Microsoft.SharePoint.dll. Pour plus d'informations sur le modèle d'objet serveur, consultez Utilisation du modèle d'objet serveur SharePoint Foundation (page éventuellement en anglais).

Modèle d'objet client

Le modèle d'objet client est un sous-ensemble du modèle d'objet serveur. Il permet d'interagir avec les données SharePoint provenant d'un client ou d'un serveur distant. Il est prévu pour minimiser le nombre d'allers-retours nécessaires à l'exécution des tâches courantes. La plus grande partie du modèle d'objet client est définie dans les assemblys Microsoft.SharePoint.Client.dll et Microsoft.SharePoint.Client.Runtime.dll. Pour plus d'informations sur le modèle d'objet client, consultez Modèle d'objet client géré (page éventuellement en anglais).

Voir aussi

Concepts

Appel des modèles d'objet SharePoint

Visual Studio Development Environment Model

Utilisation du service de projet SharePoint

Autres ressources

Extension des outils SharePoint dans Visual Studio

Historique des modifications

Date

Historique

Motif

Mai 2010

Nouveaux détails ajoutés sur les interfaces MEF exposées par le modèle d'objet d'outils SharePoint.

Améliorations apportées aux informations.