Contexto de cliente como objeto central

Última modificación: jueves, 15 de julio de 2010

Hace referencia a: SharePoint Foundation 2010

Disponible en SharePoint Online

De forma similar a la programación respecto de objetos servidor en el contexto del servidor, que implica crear una instancia o devolver un objeto central que proporcione acceso al modelo de objetos, los nuevos modelos de objetos del lado cliente usan un objeto ClientContext (JavaScript: ClientContext) como "centro de gravedad" de todas las operaciones. El proceso de obtener y trabajar con sitios y datos comienza con la recuperación de un objeto de contexto. Por ejemplo, ClientContext clientContext = new ClientContext("http://MyServer/sites/MySiteCollection") crea una instancia del objeto de contexto de una colección de sitios específica.

El objeto ClientContext (JavaScript: ClientContext) sirve de punto de entrada principal para obtener acceso al modelo de objetos cliente y como objeto central a través del que se pueden organizar solicitudes e iniciar acciones dentro de una colección de sitios. Use propiedades del objeto ClientContext (JavaScript: ClientContext) para obtener colecciones de sitio o sitios web a través de los que se pueda tener acceso a otros objetos cliente de SharePoint Foundation de forma remota.

El constructor ClientContext() (JavaScript: ClientContext(serverRelativeUrl)) inicializa un contexto de cliente basado en un sitio web o una colección de sitios especificados. En el modelo de objetos cliente administrado, la dirección URL debe ser la dirección URL absoluta de un sitio web específico. En el modelo de objetos de ECMAScript (JavaScript, JScript), se requiere una dirección URL relativa al servidor o ningún parámetro. En JavaScript, si se usa el constructor que no toma parámetros, la dirección URL del sitio web de destino es la dirección URL del sitio web que contiene la página web.

Antes de ejecutar una consulta, se usan los objetos que se devolvieron a través del contexto de cliente para definir las acciones que se deben realizar. La clase ClientContext (JavaScript: ClientContext) hereda los métodos Load<T>(T, []) (JavaScript: load(clientObject)) y LoadQuery() (JavaScript: loadQuery(clientObjectCollection, exp)) de la clase ClientRuntimeContext (JavaScript: ClientRuntimeContext). Se define una consulta para realizar acciones específicas y devolver objetos o propiedades específicos y, a continuación, se llama a uno de estos métodos para cargar la consulta.

Después de cargar una consulta, llame al método ExecuteQuery() o ExecuteQueryAsync(ClientRequestSucceededEventHandler, ClientRequestFailedEventHandler) (JavaScript: executeQueryAsync(succeededCallback, failedCallback)) del objeto ClientContext (JavaScript: ClientContext) para enviar la consulta al servidor. El modelo de objetos cliente de Silverlight proporciona un método ExecuteQuery(), que puede llamarse de forma sincrónica desde subprocesos que no modifican la interfaz de usuario (UI), y un método ExecuteQueryAsync(ClientRequestSucceededEventHandler, ClientRequestFailedEventHandler) asincrónico para los casos en que los subprocesos modifican la UI. Estos métodos para ejecutar consultas formulan un XML que representa las acciones tomadas en el cliente y envían el XML al servidor. En el modelo de objetos administrado, esta llamada es sincrónica, lo que significa que la ejecución del código se bloquea hasta que se recibe una respuesta del servidor. Esta llamada puede ser sincrónica o asincrónica en el modelo de objetos de Silverlight, pero siempre es asincrónica en el modelo de objetos de JavaScript. En una llamada asincrónica, el código continúa ejecutándose y no espera la respuesta del servidor. En los modelos de objetos de Silverlight y de JavaScript, se puede implementar una función de devolución de llamada que se invoca cuando se recibe la respuesta del servidor.

En los modelos de objetos de Silverlight y de JavaScript de SharePoint Foundation, se puede usar la propiedad Current (JavaScript: current) del contexto de cliente para devolver el contexto de solicitud actual de las páginas que operan dentro de SharePoint Foundation.

El ejemplo siguiente ilustra los pasos básicos para usar métodos de la clase ClientContext (JavaScript: ClientContext) para devolver el título de un sitio 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());
}

Vea también

Conceptos

Jerarquía e identidad del modelo de objetos

Objetos de cliente, objetos valor y propiedades escalares

Creación de objetos cliente

Instrucciones del modelo de objetos cliente

Diferencias entre los modelos de objetos administrados y de ECMAScript

Tareas comunes de programación

Otros recursos

Biblioteca de clases de cliente

Biblioteca de clases de ECMAScript

Uso del modelo de objetos de cliente administrados de SharePoint Foundation 2010

Centro de recursos del modelo de objetos de cliente