SharePoint: modelo de objetos de cliente

En este capítulo, veremos el modelo de objetos de cliente o CSOM. Esta fue una de las dos API para crear aplicaciones remotas que se agregaron a SharePoint 2010.

Uno de los objetivos de diseño del modelo de objetos de cliente era imitar el modelo de objetos de servidor tanto como fuera posible, por lo que habría una curva de aprendizaje más corta para los desarrolladores que ya están familiarizados con el desarrollo en el lado del servidor.

El corazón del modelo de objetos de cliente es un servicio web llamado Client.svc, que vive en el _vti_bindirectorio virtual. No se supone que nos comuniquemos directamente con Client.svc, pero se nos dan tres proxies o puntos de entrada, que podemos usar. Ellos son -

  • Código administrado .NET.
  • JavaScript.
  • JavaScript.

El código se comunica con estos proxies y luego estos proxies finalmente se comunican con el servicio web.

Dado que se trata de una API remota y la comunicación se realiza con SharePoint a través de llamadas al servicio web, el modelo de objetos de cliente está diseñado para permitirnos agrupar comandos y solicitudes de información.

Código administrado .NET

Los dos ensamblados principales para la implementación de administración de .NET son:

Microsoft.SharePoint.Client.dll y Microsoft.SharePoint.Client.Runtime.dll.

Código Silverlight

Los ensamblados para la implementación de Silverlight viven en TEMPLATE\LAYOUTS\ClientBin. Los nombres de los ensamblados también comienzan conMicrosoft.SharePoint.Client. Para todos los ensamblados menos uno, el nombre del ensamblado termina en Silverlight.

Los dos ensamblajes principales para la implementación de Silverlight son:

  • Microsoft.SharePoint.Client.Silverlight.dll
  • Microsoft.SharePoint.Client.Silverlight.Runtime.dll

JavaScript

La implementación de JavaScript en el modelo de objetos de cliente se encuentra en la carpeta TEMPLATE \ LAYOUTS debajo de la raíz del sistema de SharePoint. Todos los nombres de las bibliotecas de JavaScript comienzan con SP. Las tres bibliotecas principales sonSP.js, Sp.Runtime.jsy SP.Core.js.

El modelo de objetos de cliente se amplió en SharePoint 2013.

Recuperar recursos con carga usando .NET

Veamos un ejemplo simple en el que usaremos la implementación administrada del Modelo de objetos de cliente mediante la aplicación de formularios de Windows. Por lo tanto, primero necesitamos crear un nuevo proyecto.

Step 1 - Seleccionar Windows Forms Applicationen el panel central e ingrese el nombre en el campo Nombre. Haga clic en Aceptar.

Step 2- Una vez creado el proyecto, agreguemos un cuadro de lista y un botón como se muestra a continuación. Para usar el modelo de objetos de cliente, necesitamos agregar un par de referencias de ensamblaje. Haga clic con el botón derecho en las referencias y elija Agregar referencia.

Step 3 - Seleccionar Extensions en el panel izquierdo debajo Assemblies.

Los dos ensamblados principales para la implementación administrada del modelo de objetos de cliente son Microsoft.SharePoint.Client y Microsoft.SharePoint.Client.Runtime. Marque estas dos opciones y haga clic en Aceptar.

Ahora haga doble clic en el botón Cargar para agregar el controlador de eventos como se indica a continuación.

using Microsoft.SharePoint.Client;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ClientObjectModel {
   public partial class Form1 : Microsoft.SharePoint.Client.Form {
      public Form1() {
         InitializeComponent();
      }
      private void loadBtn_Click(object sender, EventArgs e) {
         using (var context = new ClientContext("http://waqasserver/sites/demo")) {
            var web = context.Web;
            context.Load(web);
            context.Load(web.Lists);
            context.ExecuteQuery();
            ResultListBox.Items.Add(web.Title);
            ResultListBox.Items.Add(web.Lists.Count);
         }
      }
   }
}

El punto de entrada al modelo de objetos del cliente es el contexto del cliente. Es la versión remota de cliente delSPContextobjeto. Este es un tipo desechable, por lo que está envuelto en unusingdeclaración. Pasamos la URL del sitio de SharePointClientContext.

Así que ahora tenemos nuestro contexto. Necesitamos un objeto para representar el sitio actual para que seavar web = context.web.

Note- Recuerde, este objeto es solo un shell vacío, por lo que necesitamos cargar los objetos web usando context.load y pasar el objeto web. Esto indica que queremos que las propiedades de los objetos web se completen en la siguiente recuperación por lotes.

A continuación, necesitamos llamar context.ExecuteQueryy eso realmente inicia la recuperación por lotes. Recuperamos los valores de propiedad del servidor y los agregamos al cuadro de lista.

Cuando se compile y ejecute el código anterior, verá el siguiente resultado:

Haga clic en el botón Cargar y verá que obtenemos ambos, el título y el recuento de las listas.

Permite que la configuración de nuestro proyecto use el modelo de objetos de cliente para verificar los recursos de carga usando el método de carga.