[SharePoint 2010] Introduction au Modèle Objet Client
SharePoint 2010 offre désormais la possibilité, grâce au Modèle Objet Client, de concevoir des applications clientes qui interagissent avec SharePoint sans pour autant exécuter du code sur l'environnement SharePoint. Cela vous permet de créer des applications .Net, Silverlight ou ECMAScript (JavaScript, JScript) qui accèdent à SharePoint sans avoir à déployer sur la ferme SharePoint et sans avoir à utiliser les Web Services de SharePoint.
Le Modèle Object Client met à disposition une API qui est assez proche de son équivalent serveur. Voici une équivalence de classes clientes et serveur:
ClientContext > SPContext
Site > SPSite
Web > SPWeb
List > SPList
ListItem > SPListItem
Field > SPField
Globalement, à part pour le ClientContext, il suffit juste d'enlever le préfixe SP...

- Pour utiliser cette API dans une application .Net, votre projet doit faire référence aux assemblies suivantes : Microsoft.SharePoint.Client.dll et Microsoft.SharePoint.Client.Runtime.dll, que vous pouvez trouver dans le dossier ISAPI de SharePoint et que vous pouvez copier sur votre machine de développement.
- Pour un projet Silverlight, il s'agit des assemblies: Microsoft.SharePoint.Client.Silverlight.dll et Microsoft.SharePoint.Client.Runtime.Silverlight.dll, que vous pouvez trouver dans le dossier TEMPLATE\LAYOUTS\ClientBin.
Voici un petit exemple de code d'un projet Console affichant les titres des listes d'un site donné:
using (ClientContext ctx = new ClientContext("http://monsite"))
{
Web web = ctx.Web;
ListCollection lists = web.Lists;
ctx.Load(web);
ctx.Load(lists);
ctx.ExecuteQuery();
foreach (List list in lists)
{
Console.WriteLine("Liste: {0}", list.Title);
}
}Les points importants:
- ClientContext pour se connecter à un site SharePoint
- ClientContext.Load() pour initier les objets à utiliser
- ClientContext.ExecuteQuery() pour exécuter les requêtes et provisionner les objets
==> Ce qui est intéressant et va vous permettre de gérer finement les appels au serveur, c'est que le serveur n'est contacté qu'au moment de l'appel de la méthode ExecuteQuery() (Les commandes sont en fait batchées sur le client, envoyées au service client.svc qui retourne ensuite le résultat). Vous pouvez donc charger votre hiérarchie d'objet (Web, List, Items, ...) et contacter le serveur qu'au moment voulu.
Voilà, nous avons réussi à interagir avec SharePoint, très simplement, sans installer de code sur la ferme et sans utiliser les Web Services. Que du bonheur ! Il ne vous reste plus qu'a imaginer des cas d'utilisation...
Pour aller plus loin:
http://msdn.microsoft.com/fr-fr/library/ee857094.aspx
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :