Partager via


Contexte de client en tant qu’objet central

Dernière modification : jeudi 15 juillet 2010

S’applique à : SharePoint Foundation 2010

Disponible dans SharePoint Online

De façon similaire à la programmation pour des objets de serveur dans le contexte du serveur, qui implique d’instancier ou de retourner un objet central qui fournit un accès au modèle objet, les nouveaux modèles objet côté client utilisent un objet ClientContext (JavaScript: ClientContext) en tant que « centre de gravité » pour toutes les opérations. Le processus consistant à obtenir et à travailler avec des sites et des données commence par la récupération d’un objet de contexte. Par exemple, ClientContext clientContext = new ClientContext("http://MyServer/sites/MySiteCollection") instancie l’objet de contexte pour une collection de sites spécifique.

L’objet ClientContext (JavaScript: ClientContext) sert de point d’entrée principal pour l’accès au modèle objet client et d’objet central à travers lequel vous pouvez organiser les demandes et initier des actions dans une collection de sites. Utilisez les propriétés d’objet de l’objet ClientContext (JavaScript: ClientContext) pour obtenir des collections de sites ou des sites Web à travers lesquels vous pouvez accéder à distance à d’autres objets clients SharePoint Foundation.

Le ClientContext() constructeur (JavaScript: ClientContext(serverRelativeUrl)) initialise un contexte de client basé sur un site Web ou une collection de sites spécifique. Dans le modèle objet client géré, l’URL doit être l’URL absolue d’un site Web donné. Dans le modèle objet ECMAScript (JavaScript, JScript), ce qui est requis est une URL relative de serveur ou bien aucun paramètre. Dans JavaScript, si vous utilisez le constructeur qui ne prend pas de paramètre, l’URL de site Web cible est l’URL du site Web qui contient la page Web.

Avant d’exécuter réellement une requête, vous utilisez les objets qui sont retournés via le contexte de client pour définir les actions à effectuer. La classe ClientContext (JavaScript: ClientContext) hérite des méthodes Load<T>(T, []) (JavaScript: load(clientObject)) et LoadQuery() (JavaScript: loadQuery(clientObjectCollection, exp)) de la classe ClientRuntimeContext (JavaScript: ClientRuntimeContext). Vous définissez une requête pour effectuer des actions spécifiques et retourner des objets ou des propriétés spécifiques, puis vous appelez l’une de ces méthodes pour charger la requête.

Après avoir chargé une requête, appelez la méthode ExecuteQuery() ou ExecuteQueryAsync(ClientRequestSucceededEventHandler, ClientRequestFailedEventHandler) (JavaScript: executeQueryAsync(succeededCallback, failedCallback)) de l’objet ClientContext (JavaScript: ClientContext) pour renvoyer la requête au serveur. Le modèle objet client Silverlight fournit une méthode ExecuteQuery(), qui peut être appelée de façon synchrone à partir de threads qui ne modifient pas l’interface utilisateur, ainsi qu’une méthode ExecuteQueryAsync(ClientRequestSucceededEventHandler, ClientRequestFailedEventHandler) asynchrone pour les cas où les threads modifient l’interface utilisateur. Ces méthodes pour l’exécution des requêtes formulent du code XML qui représente les actions effectuées sur le client, et envoient le code XML au serveur. Dans le modèle objet géré, cet appel est synchrone, ce qui signifie que l’exécution du code est bloquée jusqu’à la réception d’une réponse du serveur. Cet appel peut être synchrone ou asynchrone dans le modèle objet Silverlight, mais il est toujours asynchrone dans le modèle objet JavaScript. Dans un appel asynchrone, le code continue de s’exécuter et n’attend pas la réponse du serveur. Dans les modèles objet Silverlight et JavaScript, vous pouvez implémenter une fonction de rappel qui est appelée lorsque la réponse du serveur est reçue.

Dans les modèles objet SharePoint Foundation Silverlight et JavaScript, vous pouvez utiliser la propriété Current (JavaScript: current) du contexte de client pour retourner le contexte de la demande en cours depuis les pages qui fonctionnent dans SharePoint Foundation.

L’exemple suivant montre les étapes de base pour l’utilisation des méthodes de la classe ClientContext (JavaScript: ClientContext) pour retourner le titre d’un site Web :

using System;
using Microsoft.SharePoint.Client;

namespace Microsoft.SDK.SharePointServices.Samples
{
    class UsingClientContext
    {
        static void Main()
        {
            ClientContext clientContext = new ClientContext("http://MyServer/sites/MySiteCollection");

            Web oWebsite = clientContext.Web;

            clientContext.Load(oWebsite);

            clientContext.ExecuteQuery();

            Console.WriteLine(oWebsite.Title);
        }
    }
}
Imports System
Imports Microsoft.SharePoint.Client

Namespace Microsoft.SDK.SharePointServices.Samples
   Class UsingClientContext
      
      Shared Sub Main()
         Dim clientContext As New ClientContext("http://MyServer/sites/MySiteCollection")

         Dim oWebsite As Web = clientContext.Web

         clientContext.Load(oWebsite)

         clientContext.ExecuteQuery()
         
         Console.WriteLine(oWebsite.Title)
      End Sub
   End Class
End Namespace
function useClientContext() {
    var clientContext = new SP.ClientContext('/sites/MySiteCollection');
    this.oWebsite = clientContext.get_web();
    clientContext.load(oWebsite);
    clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}

function onQuerySucceeded() {
    alert('Title: ' + oWebsite.get_title());
}
    
function onQueryFailed(sender, args) {
    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}

Voir aussi

Concepts

Hiérarchie et identité du modèle objet

Objets clients, objets de valeur et propriétés scalaires

Création d’objet client

Directive du modèle objet client

Différences entre les modèles objets managés et les modèles objets ECMAScript

Tâches courantes de programmation

Autres ressources

Bibliothèque de classes Client

Bibliothèque de classes ECMAScript

Utilisation du modèle objet de client géré SharePoint Foundation 2010

Centre de ressources pour le modèle objet client (éventuellement en anglais)