Vue d’ensemble du modèle de programmation des extensions d’outils SharePointOverview of the Programming Model of SharePoint Tools Extensions

Quand vous créez une extension pour les outils SharePoint dans Visual Studio, vous commencez par implémenter une ou plusieurs interfaces d’extensibilité qui sont exposées par ces outils.When you create an extension for the SharePoint tools in Visual Studio, you begin by implementing one or more extensibility interfaces that are exposed by the SharePoint tools. Dans la plupart des cas, vous utilisez également d'autres types fournis par les outils SharePoint pour implémenter des fonctionnalités dans votre extension.In most cases, you will also use other types provided by the SharePoint tools to implement features in your extension. Dans certains scénarios, vous pouvez également utiliser des types dans d'autres modèles objet fournis par Visual Studio et SharePoint.In some scenarios you might also use types in other object models provided by Visual Studio and SharePoint. Vous devez comprendre l’objectif de chacun de ces modèles objet et savoir comment utiliser les uns avec les autres pour créer des extensions pour les outils SharePoint.You must understand the purpose of each of these object models and know how to use them with each other to create extensions for the SharePoint tools.

Extension des outils SharePoint en implémentant des interfaces d'extensibilitéExtending the SharePoint Tools by Implementing Extensibility Interfaces

Visual Studio utilise Managed Extensibility Framework (MEF) dans .NET Framework 4 pour fournir le modèle d'extensibilité pour les outils SharePoint.Visual Studio uses the Managed Extensibility Framework (MEF) in the .NET Framework 4 to provide the extensibility model for the SharePoint tools. 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.MEF is an API (implemented in the System.ComponentModel.Composition assembly) that enables applications to expose extensibility points and to discover and load extensions at run time. Pour plus d’informations sur MEF, consultez Managed Extensibility Framework (MEF).For more information about MEF, see Managed Extensibility Framework (MEF).

Pour étendre les outils SharePoint, implémentez une ou plusieurs interfaces d'extensibilité qui sont exposées par Visual Studio.To extend the SharePoint tools, implement one or more extensibility interfaces that are exposed by Visual Studio. Vous devez également appliquer l'attribut ExportAttribute et, si nécessaire, des attributs supplémentaires spécifiques aux outils SharePoint, à l'implémentation de votre interface.You must also apply the ExportAttribute, and additional SharePoint tools-specific attributes as necessary, to your interface implementation. Le tableau suivant répertorie les interfaces que vous pouvez implémenter pour étendre les outils SharePoint.The following table lists the interfaces you can implement to extend the SharePoint tools.

InterfaceInterface DescriptionDescription
ISharePointProjectItemTypeProvider Implémentez cette interface pour définir un nouveau type d'élément de projet SharePoint.Implement this interface to define a new type of SharePoint project item. Pour obtenir un exemple, consultez Comment : définir un Type d’élément de projet SharePoint.For an example, see How to: Define a SharePoint Project Item Type.
ISharePointProjectItemTypeExtension Implémentez cette interface pour étendre un type d'élément de projet SharePoint qui est déjà installé dans Visual Studio.Implement this interface to extend a type of SharePoint project item that is already installed in Visual Studio. Pour obtenir un exemple, consultez Comment : créer une Extension d’élément de projet SharePoint.For an example, see How to: Create a SharePoint Project Item Extension.
ISharePointProjectExtension Implémentez cette interface pour étendre des projets SharePoint.Implement this interface to extend SharePoint projects. Pour obtenir un exemple, consultez Comment : créer une Extension de projet SharePoint.For an example, see How to: Create a SharePoint Project Extension.
IDeploymentStep Implémentez cette interface pour définir une nouvelle étape de déploiement qui peut être exécutée quand un élément de projet SharePoint est déployé ou retiré.Implement this interface to define a new deployment step that can be executed when a SharePoint project item is deployed or retracted. Pour obtenir un exemple, consultez procédure pas à pas : création d’une étape de déploiement personnalisée pour les projets SharePoint.For an example, see Walkthrough: Creating a Custom Deployment Step for SharePoint Projects.
IExplorerNodeTypeExtension Implémentez cette interface pour étendre un nœud existant sous le connexions SharePoint nœud dans le l’Explorateur de serveurs fenêtre.Implement this interface to extend an existing node under the SharePoint Connections node in the Server Explorer window. Pour obtenir un exemple, consultez Comment : étendre un nœud SharePoint dans l’Explorateur de serveurs.For an example, see How to: Extend a SharePoint Node in Server Explorer.
IExplorerNodeTypeProvider Implémentez cette interface pour définir un nouveau type de nœud sous la connexions SharePoint nœud dans le l’Explorateur de serveurs fenêtre.Implement this interface to define a new type of node under the SharePoint Connections node in the Server Explorer window. Pour obtenir un exemple, consultez Comment : étendre un nœud SharePoint dans l’Explorateur de serveurs.For an example, see How to: Extend a SharePoint Node in Server Explorer.
IFeatureValidationRule Implémentez cette interface pour définir une règle de validation de fonctionnalité personnalisée.Implement this interface to define a custom feature validation rule. Pour obtenir un exemple, consultez Comment : créer des fonctionnalités personnalisées et les règles de Validation de Package pour les Solutions SharePoint.For an example, see How to: Create Custom Feature and Package Validation Rules for SharePoint Solutions.
IPackageValidationRule Implémentez cette interface pour définir une règle de validation de package personnalisée.Implement this interface to define a custom package validation rule. Pour obtenir un exemple, consultez Comment : créer des fonctionnalités personnalisées et les règles de Validation de Package pour les Solutions SharePoint.For an example, see How to: Create Custom Feature and Package Validation Rules for SharePoint Solutions.

Après avoir implémenté une extension des outils SharePoint, vous devez déployer l’assembly d’extension dans un package d’extension Visual Studio pour permettre à Visual Studio de découvrir et de charger l’extension.After you implement an extension of the SharePoint tools, you must deploy the extension assembly in a Visual Studio extension (VSIX) package to enable Visual Studio to discover and load the extension. Pour plus d’informations, consultez déploiement d’Extensions pour les outils SharePoint dans Visual Studio.For more information, see Deploying Extensions for the SharePoint Tools in Visual Studio.

Présentation des modèles objet que vous utilisez dans les extensions des outils SharePointUnderstanding the Object Models That You Use in SharePoint Tools Extensions

Vous pouvez utiliser plusieurs modèles objet quand vous créez des extensions pour les outils SharePoint :There are several object models you can use when you create extensions for the SharePoint tools:

  • Modèle objet des outils SharePoint.SharePoint tools object model. Ce modèle objet fournit les interfaces d'extensibilité que vous implémentez pour créer des extensions d'outils SharePoint et d'autres types connexes.This object model provides the extensibility interfaces that you implement to create SharePoint tools extensions, and other related types.

  • Visual Studio automation et intégration objet les modèles.Visual Studio automation and integration object models. Utilisez ces modèles objet pour accéder aux fonctionnalités de Visual Studio qui dépassent le cadre du modèle objet des outils SharePoint.Use these object models to access Visual Studio features that are beyond the scope of the SharePoint tools object model.

    Note

    Vous pouvez convertir certains objets du modèle objet des outils SharePoint en objets des modèles objet d'intégration et d'automation Visual Studio et vice versa, en utilisant le service de projet SharePoint.You can convert some objects in the SharePoint tools object model to objects in the Visual Studio automation and integration object models, and vice versa, by using the SharePoint project service. Pour plus d’informations, consultez conversion entre système de Types de projet SharePoint et d’autres Types de projet Visual Studio.For more information, see Converting Between SharePoint Project System Types and Other Visual Studio Project Types.

  • Modèles d’objet serveur et client SharePoint.SharePoint server and client object models. Utilisez ces modèles objet pour modifier un site SharePoint ou pour extraire des données d’un site SharePoint à partir du contexte d’une extension des outils SharePoint.Use these object models to modify a SharePoint site or to retrieve data from a SharePoint site from the context of a SharePoint tools extension.

Modèle objet des outils SharePointSharePoint Tools Object Model

Chaque extension des outils SharePoint utilise des types dans le modèle objet des outils SharePoint pour définir les fonctionnalités et le comportement principaux de l'extension.Each SharePoint tools extension uses types in the SharePoint tools object model to define the core behavior and functionality of the extension. Le tableau suivant décrit les espaces de noms qui sont inclus dans ce modèle objet.The following table describes the namespaces that are included in this object model.

AssemblyAssembly Espace de nomsNamespace DescriptionDescription
Microsoft.VisualStudio.SharePoint.dllMicrosoft.VisualStudio.SharePoint.dll Microsoft.VisualStudio.SharePoint Contient des types qui vous permettent d'étendre et d'automatiser le système de projet SharePoint.Contains types that you use to extend and automate the SharePoint project system. Par exemple, vous pouvez étendre les éléments de projet et les projets SharePoint intégrés, ou vous pouvez créer vos propres éléments de projet.For example, you can extend the built-in SharePoint projects and project items, or you can create your own project items. Pour plus d’informations, consultez extension du système de projet SharePoint.For more information, see Extending the SharePoint Project System.
Microsoft.VisualStudio.SharePoint.Deployment Contient des types qui vous permettent d'étendre le processus de déploiement des projets SharePoint, comme la création de vos propres étapes et configurations de déploiement.Contains types that you use to extend the deployment process for SharePoint projects, such as creating your own deployment steps and deployment configurations. Pour plus d’informations, consultez étendre un empaquetage SharePoint et déploiement.For more information, see Extending SharePoint Packaging and Deployment.
Microsoft.VisualStudio.SharePoint.Explorer Contient des types qui vous permettent d’étendre les nœuds sous le connexions SharePoint nœud dans le l’Explorateur de serveurs fenêtre, ou pour définir de nouveaux types de nœuds.Contains types that you use to extend nodes under the SharePoint Connections node in the Server Explorer window, or to define new types of nodes. Pour plus d'informations, consultez Extension du nœud Connexions SharePoint dans l'Explorateur de serveurs.For more information, see Extending the SharePoint Connections Node in Server Explorer.
Microsoft.VisualStudio.SharePoint.Features Contient des types qui vous permettent d’accéder aux définitions de fonctionnalité dans un projet SharePoint.Contains types that you use to access the Feature definitions in a SharePoint project.
Microsoft.VisualStudio.SharePoint.Packages Contient des types qui vous permettent d'accéder à la définition de package dans une solution SharePoint.Contains types that you use to access the package definition in a SharePoint solution.
Microsoft.VisualStudio.SharePoint.Validation Contient des types qui vous permettent de personnaliser le comportement de validation de fonctionnalité et de package pour les projets SharePoint.Contains types that you use to customize the Feature and package validation behavior for SharePoint projects. Pour plus d’informations, consultez Comment : créer des fonctionnalités personnalisées et les règles de Validation de Package pour les Solutions SharePoint.For more information, see How to: Create Custom Feature and Package Validation Rules for SharePoint Solutions.
Microsoft.VisualStudio.SharePoint.Commands.dllMicrosoft.VisualStudio.SharePoint.Commands.dll Microsoft.VisualStudio.SharePoint.Commands Contient des types que vous pouvez utiliser pour créer des commandes SharePoint.Contains types that you can use to create custom SharePoint commands. Une commande SharePoint est une méthode qui appelle le modèle objet serveur SharePoint à partir d’une extension des outils SharePoint.A SharePoint command is a method that calls into the SharePoint server object model from a SharePoint tools extension. Pour plus d’informations, consultez appel des modèles d’objet SharePoint.For more information, see Calling into the SharePoint Object Models.
Microsoft.VisualStudio.SharePoint.Explorer.Extensions.dllMicrosoft.VisualStudio.SharePoint.Explorer.Extensions.dll Microsoft.VisualStudio.SharePoint.Explorer.Extensions Contient des types que vous pouvez utiliser pour obtenir des informations sur intégrée l’Explorateur de serveurs nœuds qui représentent des composants individuels d’un site SharePoint, tel qu’un nœud qui représente une liste, un champ ou un type de contenu.Contains types that you can use to get information about built-in Server Explorer nodes that represent individual components on a SharePoint site, such as a node that represents a list, field, or content type. Pour plus d'informations, consultez Extension du nœud Connexions SharePoint dans l'Explorateur de serveurs.For more information, see Extending the SharePoint Connections Node in Server Explorer.

Modèle objet automation Visual StudioVisual Studio Automation Object Model

Le modèle objet automation Visual Studio fournit des API que vous pouvez utiliser pour automatiser des projets Visual Studio et l'IDE.The Visual Studio automation object model provides APIs that you can use to automate Visual Studio projects and the IDE. Utilisez le modèle objet Visual Studio pour effectuer des tâches relatives au projet qui ne sont pas spécifiques aux projets SharePoint, ou pour effectuer d'autres tâches d'automatisation générales dans Visual Studio.Use the Visual Studio object model to perform project-related tasks that are not specific to SharePoint projects, or to perform other general automation tasks in Visual Studio. En règle générale, ce modèle objet est souvent utilisé dans les macros et les compléments Visual Studio, mais vous pouvez également l'utiliser dans les extensions des outils SharePoint.Traditionally, this object model is often used in Visual Studio add-ins and macros, but you can also use it in SharePoint tools extensions.

La partie principale du modèle objet automation Visual Studio est définie dans l'assembly EnvDTE.dll.The main part of the Visual Studio automation object model is defined in the EnvDTE.dll assembly. Le EnvDTEversionassemblys .dll fournissent des fonctionnalités supplémentaires qui a été introduite dans des versions spécifiques de Visual Studio.The EnvDTEversion.dll assemblies provide additional functionality that was introduced in specific versions of Visual Studio. Ces assemblys sont inclus avec Visual Studio.These assemblies are included with Visual Studio.

Pour plus d’informations sur le modèle objet automation, consultez référence du Kit de développement logiciel Visual Studio.For more information about the automation object model, see Visual Studio SDK Reference.

Modèle objet d'intégration Visual StudioVisual Studio Integration Object Model

Le modèle d’objet Intégration fournit des API que vous pouvez utiliser pour ajouter des fonctionnalités à Visual Studio en créant un VSPackage.The integration object model provides APIs that you can use to add features to Visual Studio by creating a VSPackage. Un package Visual Studio est un module qui étend l’IDE Visual Studio en fournissant des fonctionnalités personnalisées telles que les fenêtres Outil, les éditeurs, les concepteurs, les services et les projets.A VSPackage is a module that extends the Visual Studio IDE by providing custom features such as tool windows, editors, designers, services, and projects.

Vous pouvez utiliser le modèle objet d'intégration si vous souhaitez ajouter une nouvelle fonctionnalité Visual Studio à utiliser avec les outils SharePoint intégrés.You can use the integration object model if you want to add a new Visual Studio feature that will be used with the built-in SharePoint tools. Par exemple, si vous créez un élément de projet SharePoint personnalisé qui représente une action personnalisée pour un site SharePoint, vous pouvez également créer un package Visual Studio qui implémente un concepteur pour l'action personnalisée.For example, if you create a custom SharePoint project item that represents a custom action for a SharePoint site, you can also create a VSPackage that implements a designer for the custom action. Vous pouvez associer le concepteur à l’action personnalisée en ajoutant un élément de menu contextuel pour l’élément de projet représentant l’action personnalisée dans l’Explorateur de solutions.You can associate the designer with the custom action by adding a shortcut menu item to the project item that represents the custom action in Solution Explorer. Vous pouvez ouvrir votre concepteur en ouvrant son menu contextuel (soit en cliquant sur le projet d’action personnalisée d’élément ou en le sélectionnant et en appuyant sur la touche MAJ + F10 clés), puis en choisissant ouvrir.You can open your designer by opening its shortcut menu (either by right-clicking the custom action project item or by choosing it and then choosing the Shift + F10 keys) and then choosing Open.

Ce modèle objet est défini dans un jeu d'assemblys qui sont inclus dans le Kit de développement logiciel (SDK) Visual Studio.This object model is defined in a set of assemblies that are included with the Visual Studio SDK. Parmi les principaux assemblys dans ce modèle objet figurent Microsoft.VisualStudio.Shell.11.0.dll, Microsoft.VisualStudio.Shell.Interop.dll et Microsoft.VisualStudio.OLE.Interop.dll.Some of the main assemblies in this object model include Microsoft.VisualStudio.Shell.11.0.dll, Microsoft.VisualStudio.Shell.Interop.dll, and Microsoft.VisualStudio.OLE.Interop.dll.

Pour plus d’informations sur le modèle objet d’intégration, voir vue d’ensemble du modèle Automation et référence du Kit de développement logiciel Visual Studio.For more information about the integration object model, see Automation Model Overview and Visual Studio SDK Reference.

Modèles objet SharePointSharePoint Object Models

Les extensions des outils SharePoint peuvent utiliser des API SharePoint pour modifier un site SharePoint ou pour extraire des données d'un site SharePoint.SharePoint tools extensions can use SharePoint APIs to modify a SharePoint site or to retrieve data from a SharePoint site. Microsoft SharePoint Foundation 2010Microsoft SharePoint Foundation 2010 et Microsoft SharePoint Server 2010Microsoft SharePoint Server 2010 fournissent deux modèles objet différents : un modèle objet serveur et un modèle objet client. and Microsoft SharePoint Server 2010Microsoft SharePoint Server 2010 provide two different object models: a server object model and a client object model.

Vous pouvez utiliser des API dans les deux modèles objet dans une extension des outils SharePoint, mais chaque modèle objet présente ses propres avantages et inconvénients dans le contexte des extensions des outils SharePoint.You can use APIs in either object model in a SharePoint tools extension, but each object model has some benefits and drawbacks in the context of SharePoint tools extensions. Pour plus d’informations, consultez appel des modèles d’objet SharePoint.For more information, see Calling into the SharePoint Object Models.

Modèle objetObject model DescriptionDescription
Modèle objet serveurServer object model Le modèle objet serveur fournit l'accès à toutes les fonctionnalités que Microsoft SharePoint Foundation 2010Microsoft SharePoint Foundation 2010 et Microsoft SharePoint Server 2010Microsoft SharePoint Server 2010 exposent par programmation.The server object model provides access to all of the features that Microsoft SharePoint Foundation 2010Microsoft SharePoint Foundation 2010 and Microsoft SharePoint Server 2010Microsoft SharePoint Server 2010 expose programmatically. Ce modèle objet est conçu pour être utilisé par les solutions SharePoint qui s'exécutent sur le serveur SharePoint.This object model is designed to be used by SharePoint solutions that run on the SharePoint server. La majeure partie de ce modèle objet est définie dans l'assembly Microsoft.SharePoint.dll.The majority of this object model is defined in the Microsoft.SharePoint.dll assembly. Pour plus d’informations sur le modèle objet serveur, consultez à l’aide du modèle d’objet SharePoint Foundation côté serveur.For more information about the server object model, see Using the SharePoint Foundation Server-Side Object Model.
Modèle objet clientClient object model Le modèle objet client est un sous-ensemble du modèle objet serveur qui permet d'interagir avec des données SharePoint à partir d'un client ou serveur distant.The client object model is a subset of the server object model that can be used to interoperate with SharePoint data from a remote client or server. Il est conçu pour réduire le nombre d'allers-retours qui doivent être exécutés pour effectuer des tâches courantes.It is designed to minimize the number of round trips that must be executed to perform common tasks. La majeure partie du modèle objet client est définie dans les assemblys Microsoft.SharePoint.Client.dll et Microsoft.SharePoint.Client.Runtime.dll.The majority of the client object model is defined in the Microsoft.SharePoint.Client.dll and Microsoft.SharePoint.Client.Runtime.dll assemblies. Pour plus d’informations sur le modèle objet client, consultez modèle objet Client managé.For more information about the client object model, see Managed Client Object Model.

Voir aussiSee Also

Extension des outils SharePoint dans Visual Studio Extending the SharePoint Tools in Visual Studio
Appel des modèles d’objet SharePoint Calling into the SharePoint Object Models
Utilisation du service de projet SharePointUsing the SharePoint Project Service