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 Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI
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:

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