lunes, 1 de febrero de 2010

[Sharepoint 2010] - SharePoint Client Object Model

Pues comenzamos con los posts relacionados con SharePoint 2010, en cuanto a desarrollo se refiere, específicamente con el SharePoint Client Object Model (SharePoint OM). En esta ocasión revisaremos la teoría previa, que problema resuelve y como funciona.

En el pasado (en realidad presente para la mayoría de nosotros), cuando construimos alguna aplicación cliente (como Silverlight) que se integraría con SharePoint 2007, lo hacíamos a través de web services, ya sea que usaramos los que SharePoint nos proporciona out the box ó que desarrolláramos los propios para satisfacer requerimientos puntuales de negocio.

Sin embargo esto no era del todo transparente, puesto que había que saber un par de cosillas adicionales de cómo funcionan los Web Services en SharePoint, máxime si nos decidíamos a utilizar WCF, quien no lanzo varios WTF's!, cuando descubrió la falla incapacidad de Sharepoint de convivir con los archivos .SVC.

¿Cuál es la solución que SharePoint 2010 nos brinda?

SharePoint 2010 Managed Client Object Model es una característica que nos permite escribir código del lado del cliente para trabajar con los objetos comunes con los que estamos acostumbrados a tratar del lado del servidor. Todo este código que se ejecuta del lado del cliente ahora puede agregar listas, actualizarlas, eliminarlas, manipular elementos de listas, manipular documentos que se encuentran el librerías, crear, eliminar y modificar sitios, y muchas cosas más, como veremos con forme pase el tiempo.


Además este nuevo modelo de objetos viene en tres diferentes sabores, para adaptarse a las necesidades del día a día de un desarrollador:

.Net Managed Applications (usando .NET CLR)
Silverlight Applications
ECMAScript (JavaScript, JScript)

Es importante es este punto hacer mención de que las clases del modelo de objetos en el cliente se les ha quitado el prefijo "SP", que tanto molestaba a algunos.

ServidorCliente
SPContextContext
SPWebWeb
SPSiteSite
SPListList
SPListItemListItem


Pero como aquel famoso programa de TV pregunta, ¿Y cómo funciona esto?

Nosotros interactuamos con la API en alguno de los sabores antes mencionado, es decir, llamamos métodos, asignamos propiedades, etc. Después de esto, nosotros hacemos una llamada al método ExecuteQuery ó ExecuteQueryAsync (este último para Silverlight), entonces el Client OM, se encarga de transformar todas esas operaciones que hicimos en un documento XML y enviarlo al servidor, por medio del servicio client.svc que expone SharePoint 2010. El servidor recibe la solicitud enviada desde el Client OM y hace las correspondientes llamadas a los objetos y métodos del modelo de objetos de servidor (si, si, SPContext, SPSite, SPWeb, etc.). Una vez que el servidor termine de procesar las operaciones solicitadas, este devolverá la respuesta serializada con JSON. El Client OM, recibe la respuesta y parsea el JSON a objetos .Net o bien a objetos javascript, en caso de que estemos utilizando ECMAScript.

void LoadData()
{
 ClientContext context = new ClientContext("http://mss:5300");
 Web web = context.Web;
 ListCollection lists = web.Lists;
 context.Load(web);
 context.Load(lists);

 context.ExecuteQueryAsync(succededCallback, failedCallback);
}


El servicio Client.svc


Mirando la respuesta enviada al cliente.

0 comentarios:

Etiquetas

SharePoint 2010 (38) Microsoft (32) Desarrollo SharePoint (31) Gerardo Reyes Ortiz (27) SharePoint (20) SharePoint 2013 (18) Errores SharePoint (12) México (10) PowerShell (9) Silverlight (8) Visio Services (7) Features (6) MVP (6) Silverlight 3 (6) WebCast (6) Workflows (6) Configuracion SharePoint 2010 (5) D.F. (5) API REST (4) Configuracion SharePoint 2010; (4) Troubleshooting (4) Visual Studio 2010 (4) Visual studio (4) WSS (4) Web parts (4) Apps (3) Comunidad SharePoint (3) Configuración SharePoint 2013 (3) ODATA (3) SharePoint Server (3) SharePoint; Instalación SharePoint; Troubleshooting; Search Service (3) Silverlight 3.0 (3) Silverlight Toolkit (3) WebParts (3) javascript (3) jquery (3) Eventos SharePoint (2) Office 2010 (2) PeoplePicker (2) REST (2) SQL Server (2) Scripting (2) Search Service Application (2) SharePoint Designer (2) UPA (2) UPS (2) Workflows SharePoint (2) host header (2) Apps Development (1) Big Bang (1) CAS (1) CSOM (1) Codeplex (1) CompartiMOSS (1) Configuracion SharePoint 2010; Errores SharePoint (1) Configuracion SharePoint 2010; SharePoint 2010 (1) Custom Actions (1) Custom Editor Parts (1) Delegate Controls (1) Deployment (1) DisableLoopbackCheck (1) Document Library (1) Entrevista (1) Examenes de Certificación (1) Extract WSP (1) FBA (1) FS4SP (1) Fakes (1) Fast Search Server 2010 For SharePoint (1) Fiddler (1) HTTP.SYS (1) HTTPS (1) JSON (1) Language Pack's (1) Latam (1) MAXDOP (1) MCSM (1) MSExpertos (1) MVC (1) Microsoft México (1) Microsoft; Codeplex; Screencast; (1) My Sites (1) SQL Server 2012 (1) SQL Server Reporting Services (1) Screencast (1) Screencast; (1) Service Applications (1) Service Pack (1) SharePoint 2007 (1) SharePoint 2010 SP 1 (1) SharePoint API (1) SharePoint Conference (1) SharePoint Emulators (1) SharePoint Farm (1) SharePoint Health Analyzer (1) SharePoint Magazine (1) SharePoint Online (1) SharePoint Search (1) SharePoint Test (1) SharePoint; Desarrollo SharePoint (1) Shims (1) Simposio (1) Simposio Latinoamericano (1) SkyDrive Pro (1) Soporte Microsoft (1) Templates (1) Tip (1) VSeWSS (1) Virtual Machine (1) Visual Studio 2012 (1) WCF (1) WSS; IIS 7 (1) Web API (1) Web Content Management (1) Web Services (1) Windows 8 (1) Windows Live ID (1) Xml (1) appcmd (1) iOS (1) jqGrid (1) onload function (1)