Appeler des modèles d’objet SharePointCall into the SharePoint object models

Lorsque vous créez des extensions pour les outils SharePoint dans Visual Studio, vous devrez peut-être appeler APIs SharePoint pour effectuer certaines tâches.When you create extensions for the SharePoint tools in Visual Studio, you might have to call SharePoint APIs to perform certain tasks. Par exemple, si vous créez une étape de déploiement personnalisée pour les projets SharePoint, vous devez appeler APIs SharePoint pour effectuer certaines tâches pour déployer des solutions.For example, if you create a custom deployment step for SharePoint projects, you might have to call SharePoint APIs to perform some of the tasks to deploy solutions.

Microsoft SharePoint Foundation 2010Microsoft SharePoint Foundation 2010 et Microsoft SharePoint Server 2010Microsoft SharePoint Server 2010 fournissent deux modèles d’objet que vous pouvez utiliser dans les extensions d’outils SharePoint : un modèle d’objet serveur et un modèle d’objet client. and Microsoft SharePoint Server 2010Microsoft SharePoint Server 2010 provide two different object models that you can use in SharePoint tools extensions: a server object model and a client object model. Chaque modèle objet présente des avantages et inconvénients dans le contexte d’extensions d’outils SharePoint.Each object model has benefits and drawbacks in the context of SharePoint tools extensions.

Pour une vue d’ensemble des modèles d’objet SharePoint, consultez extensions d’outils de la vue d’ensemble du modèle de programmation de SharePoint.For an overview of the SharePoint object models, see Overview of the programming model of SharePoint tools extensions.

Utiliser le modèle objet client dans les projets d’extensionUse the client object model in extension projects

Lorsque vous développez une extension pour les outils SharePoint, vous pouvez utiliser le modèle objet client dans votre projet comme tout autre ensemble d’API managées.When you develop an extension for the SharePoint tools, you can use the client object model in your project like any other set of managed APIs. Vous pouvez ajouter des références aux assemblys dans le modèle objet client à votre projet, et vous pouvez appeler des API dans le modèle objet client directement à partir de votre code.You can add references to assemblies in the client object model to your project, and you can call APIs in the client object model directly from your code.

Toutefois, le modèle objet client présente deux inconvénients dans le contexte d’extensions d’outils SharePoint :However, the client object model has two drawbacks in the context of SharePoint tools extensions:

  • Le modèle objet client fournit uniquement un sous-ensemble du modèle d’objet serveur.The client object model provides only a subset of the server object model. Si vous devez utiliser les fonctionnalités de SharePoint ne sont pas exposée dans le modèle objet client, vous devez utiliser le modèle objet serveur.If you have to use SharePoint functionality that is not exposed in the client object model, then you must use the server object model.

  • Bien qu’à l’aide du modèle objet client dans les extensions d’outils SharePoint doit fonctionner dans la plupart des cas, vous pouvez rencontrer certains scénarios où les appels au modèle objet client ne fonctionnent pas comme prévu.Although using the client object model in SharePoint tools extensions should work in most cases, you might encounter some scenarios where calls to the client object model do not work as expected. Le modèle objet client est conçu pour être utilisé dans les applications clientes pour appeler dans des sites SharePoint sur un serveur distant ou une batterie de serveurs.The client object model is designed to be used in client applications to call into SharePoint sites on a remote server or farm. Les outils SharePoint dans Visual Studio fonctionnent uniquement avec une installation SharePoint locale sur l’ordinateur de développement.The SharePoint tools in Visual Studio work only with a local SharePoint installation on the development computer. Par conséquent, lorsque vous utilisez le modèle objet client dans une extension des outils SharePoint, vous appelez dans un site SharePoint sur l’ordinateur local, ce qui n’est pas la façon dont le modèle objet client a été conçu pour être utilisé.Therefore, when you use the client object model in a SharePoint tools extension, you call into a SharePoint site on the local computer, which is not how the client object model was designed to be used.

    Pour une procédure pas à pas qui montre comment utiliser le modèle objet client dans une extension des outils SharePoint dans Visual Studio, consultez procédure pas à pas : appel dans le modèle d’objet client SharePoint dans une extension de l’Explorateur de serveurs.For a walkthrough that demonstrates how to use the client object model in an extension of the SharePoint tools in Visual Studio, see Walkthrough: Call into the SharePoint client object model in a Server Explorer extension.

Utiliser le modèle objet serveur dans les projets d’extensionUse the server object model in extension projects

Le modèle objet serveur est un sur-ensemble du modèle d’objet client.The server object model is a superset of the client object model. Lorsque vous utilisez le modèle objet serveur, vous pouvez utiliser toutes les fonctionnalités qui Microsoft SharePoint Foundation 2010Microsoft SharePoint Foundation 2010 et Microsoft SharePoint Server 2010Microsoft SharePoint Server 2010 exposent par programmation.When you use the server object model, you can use all the features that Microsoft SharePoint Foundation 2010Microsoft SharePoint Foundation 2010 and Microsoft SharePoint Server 2010Microsoft SharePoint Server 2010 expose programmatically.

Extensions d’outils SharePoint peuvent utiliser des API dans le modèle d’objet serveur, mais ils ne peuvent pas appeler directement les API.SharePoint tools extensions can use APIs in the server object model, but they cannot call the APIs directly. Le modèle objet serveur peut être appelé uniquement à partir d’un processus 64 bits qui cible le .NET Framework 3.5.The server object model can be called only from a 64-bit process that targets the .NET Framework 3.5. Toutefois, les extensions d’outils SharePoint nécessitent le .NET Framework 4.NET Framework 4 et elles s’exécutent dans le processus de Visual Studio 32 bits.However, SharePoint tools extensions require the .NET Framework 4.NET Framework 4 and they run in the 32-bit Visual Studio process. Cela empêche les extensions d’outils SharePoint de référencer les assemblys dans le modèle d’objet serveur SharePoint directement.This prevents SharePoint tools extensions from referencing the assemblies in the SharePoint server object model directly.

Si vous souhaitez utiliser le modèle objet serveur dans une extension des outils SharePoint, vous devez créer un personnalisé commande SharePoint pour appeler l’API.If you want to use the server object model in a SharePoint tools extension, you must create a custom SharePoint command to call the API. Vous définissez la commande SharePoint dans un assembly secondaire peut appeler directement dans le modèle objet serveur.You define the SharePoint command in a secondary assembly that can call into the server object model directly. Dans votre projet d’extension, vous appelez la commande SharePoint indirectement à l’aide de la méthode ExecuteCommand d’un ISharePointConnection objet.In your extension project, you call the SharePoint command indirectly by using the ExecuteCommand method of an ISharePointConnection object.

Pour plus d’informations sur la création et à l’aide des commandes SharePoint, consultez Comment : créer une commande SharePoint et Comment : exécuter une commande SharePoint.For more information about creating and using SharePoint commands, see How to: Create a SharePoint command and How to: Execute a SharePoint command. Pour plus d’informations sur le déploiement des commandes SharePoint, consultez déployer des extensions pour les outils SharePoint dans Visual Studio.For information about how to deploy SharePoint commands, see Deploy extensions for the SharePoint tools in Visual Studio.

Pour les procédures pas à pas qui montrent comment créer et utiliser les commandes SharePoint, consultez procédure pas à pas : créer une étape de déploiement personnalisée pour les projets SharePoint et procédure pas à pas : étendre des Explorateur de serveurs pour afficher des WebParts .For walkthroughs that demonstrate how to create and use SharePoint commands, see Walkthrough: Create a custom deployment step for SharePoint projects and Walkthrough: Extend Server Explorer to display web parts.

Comprendre l’exécution des commandes SharePointUnderstand how SharePoint commands are executed

Les assemblys qui définissent des commandes SharePoint sont chargés dans un processus hôte 64 bits nommé vssphost4.exe.Assemblies that define SharePoint commands are loaded in a 64-bit host process named vssphost4.exe. Une fois que vous appelez une commande SharePoint dans une extension des outils SharePoint, la commande est exécutée par vssphost4.exe au lieu du processus de Visual Studio 32 bits (devenv.exe).After you call a SharePoint command in a SharePoint tools extension, the command is executed by vssphost4.exe instead of the 32-bit Visual Studio process (devenv.exe). Vous pouvez contrôler certains aspects de l’exécution des commandes SharePoint en définissant des valeurs dans le Registre.You can control some aspects of how SharePoint commands are executed by setting values in the registry. Pour plus d’informations, consultez déboguer des extensions pour les outils SharePoint dans Visual Studio.For more information, see Debug extensions for the SharePoint tools in Visual Studio.

Voir aussiSee also

Comment : créer une commande SharePoint How to: Create a SharePoint command
Comment : exécuter une commande SharePoint How to: Execute a SharePoint command
Extensions d’outils de la vue d’ensemble du modèle de programmation de SharePointOverview of the programming model of SharePoint tools extensions