SharePoint 2010: Modelo de Objetos en Cliente (I)!

Por si no había quedado claro, SharePoint 2010 está lleno de novedades a todos los niveles: desde la perspectiva puramente funcional, pasando por la extensibilidad mediante desarrollo y la productividad que se logra con las Visual Studio Tools para SharePoint, hasta los cambios a nivel de arquitectura y administración. En la parte de desarrollo hay muchas cosas nuevas, y una de ellas es la disponibilidad de un modelo de objetos (MO) para cliente. Este MO en cliente es un subconjunto del MO definido en Microsoft. SharePoint.dll caracterizado por:

  • Minimizar el # de roundtrips al servidor.
  • Se trata de habilitar el acceso remoto a SharePoint sin tener que recurrir a llamar a los servicios web de SharePoint, teniendo en cuenta que estamos hablando de un subconjunto del MO.
  • Estar limitado al ámbito de Colección de Sitios. El MO en cliente no incluye objetos de administración.

Hay tres posibilidades a la hora de trabajar el MO en cliente:

  • Vía Script que se ejecute en el navegador (JavaScript, aunque más bien es ECMAScript).
  • A través de código .NET ejecutado en modo SandBox.
  • A través de código que se ejecute en una aplicación Silerlight.

Los espacios de nombres son comunes para el caso de código manejado .NET y Silverlight y se encuentran en Microsoft.SharePoint.Client. Estos espacios, son diferentes para el caso de ECMAScript y se encuentran en los archivos SP.js y SP.Core.js

Para probar las prestaciones del MO en cliente, he creado un proyecto de aplicación de consola en el que he añadido las referencias a Microsoft.SharePoint.Client.dll y Microsoft.SharePoint.Client.Runtime.dll (Por lo tanto, este ejemplo sigue la segunda de las posibilidades comentadas para el MO en cliente) que se encuentran en el path:

C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions14ISAPI

image   image

En el archivo de código del proyecto de aplicación de consola he añadido el siguiente código en el que:

  • En primer lugar, añadimos una directiva using al espacio de nombres del MO en cliente.
  • Creamos una instancia de ClientContext que nos permite conectarnos a un sitio concreto de SharePoint. Este objeto es la clave para trabajar con SharePoint 2010 de forma remota utilizando el MO en cliente.
  • A continuación creamos una instancia de Web que nos va a devolver el sitio web especificado a través de llamar a los métodos Load() y ExecuteQuery() del objeto ClientConext.
  • Lo siguiente que hago es definir una colección de tipo ListCollection (colección de Listas de SharePoint) a partir de la propiedad Lists del objeto contexto de datos.
  • A partir de la definición del objeto ListCollecction puedo definir una colección de listas realizando la correspondiente consulta utilizando para ello el método Include().
  • Para rellenar la colección de listas, volvemos a llamar al método ExecuteQuery() del contexto de datos y listo.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;  

using Microsoft.SharePoint.Client;  

namespace SPClientMO

{

    class Program

    {

        static void Main(string[] args)

        {

            ClientContext ccContext =

                new ClientContext("http://win-lpgjegdoo6f/sites/Intranet/SitioInformatica");

            Web wSite = ccContext.Web;  

            ccContext.Load(wSite);

            ccContext.ExecuteQuery();  

            ListCollection lc = ccContext.Web.Lists;

            IEnumerable<Microsoft.SharePoint.Client.List> lists =

                ccContext.LoadQuery(lc.Include(l => l.Title));

            ccContext.ExecuteQuery();  

            foreach (var l in lists)

            {

                Console.WriteLine(l.Title);

            }  

            Console.ReadLine();

        }

    }

}

La correspondiente salida por pantalla es la que se muestra a continuación:

Client_OM_3

Y hasta aquí llega este primer post sobre el modelo de objetos en cliente en SharePoint 2010.

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

3 comentarios en “SharePoint 2010: Modelo de Objetos en Cliente (I)!”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *