Freigeben über


Modelo de objetos de cliente – SharePoint 2010

El día de hoy les quiero presentar una nueva capacidad de SharePoint 2010. La cual es poder consumir datos de un sitio SharePoint 2010, desde el lado de cliente utilizando ya sea por ejemplo .NET, JavaScript o Silverlight.

blg1

Dicho modelo de objetos es un sub conjunto del existente en el lado de servidor, con unas pequeñas diferencias como por ejemplo, todos los comandos son ejecutados de forma batch para mejorar la performance.

blg2

Adicionalmente se incorporó la capacidad de consumir datos de listas SharePoint mediante servicios REST, lo que será explicado en otro artículo.

Para este ejemplo desarrollaremos una pequeña aplicación de consola la cual listará todas las listas existentes en un sitio SharePoint.

Para empezar agregaremos unas referencias a las siguientes DLL’s, las cuales se encuentran ubicadas en el directorio: “C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI”

  • Microsoft.SharePoint.Client.dll

  • Microsoft.SharePoint.Client.Runtime.dll

blg3

Agregamos la siguiente línea:

 using Microsoft.SharePoint.Client; 

Si bien el modelo de objetos por el lado de servidor realiza conexiones a los sitios utilizando el objeto SPSite, el modelo del lado de cliente ocupa la clase ClientContext el cual toma como parámetro la URL del sitio al cual se desea conectar.

 using (ClientContext ctx = new ClientContext("https://PC:2011") {ctx.Load(ctx.Web);ctx.Load(ctx.Web.Lists);ctx.ExecuteQuery();foreach (List list in ctx.Web.Lists){Console.WriteLine(list.Title);}}

Siendo su resultado:

blg4

Cabe destacar que para abrir una instancia de una web o una lista (o cualquier otro objeto de SharePoint) hay que llamar al método Load del ClientContext pero no es hasta el ExecuteQuery en que se ejecuta la instrucción. Esto se debe a que el modelo de objeto de cliente agrupa todas las instrucciones y envía todas de una sola vez.

Espero que esta información les sea de utilidad, para descargar la aplicación pueden hacerlo desde aquí.