Conectar con Sharepoint 2010 desde un cliente .NET, Javascript o SilverLight.

07/03/2012

Una de las novedades que incorpora Sharepoint 2010 es la posibilidad de trabajar en la parte cliente con el COM (Client Object Model). En Sharepoint 2007, si queríamos conectar con el servidor de Sharepoint, la única forma era utilizar los webservices y con ellos llamar a los objectos servidor de Sharepoint (server-side), pero esta forma de trabajar era muy compleja. Para simplificarlo, en Sharepoint 2010, aparecen los objetos cliente que son similares a los del servidor pero que nos permiten conectarnos al servidor de Sharepoint desde un simple cliente hecho en Vb.NET o C#, desde Javascrit o desde una aplicación de SilverLight. Veamos estas 3 formas de conectarnos.

– Una aplicación de .NET: Debemos agregar a nuestro proyecto de .NET las siguientes librerías:
Microsoft.SharePoint.Client.dll
Microsoft.SharePoint.Client.Runtime.dll

Una vez añadidas las librerías, referenciamos un objeto de tipo ClientContext para hacer referencia vía una url al sharepoint. Debemos luego cargar con el método load de un objeto Web, el contexto creado y de ahí hacer referencia al resto de objetos clientes que son similares a la jerarquía que tengo en la parte de servidor. Por ejemplo en vez de SPList tenemos List, en vez de SPWeb tenemos Web… Finalmente llamamos a método ExecuteQuery del contexto y ya tenemos nuestro código de .NET. Aquí pongo un ejemplo de creación de un site desde un cliente de C#.

ClientContext remoteCtx = new ClientContext(“http://sharepoint”);
Web remoteWeb = remoteCtx.Web;
remoteCtx.Load(remoteWeb);
WebCreationInformation skillsInfo = new WebCreationInformation();
skillsInfo.Title = “Mi Sitio de Conocimientos”;
skillsInfo.Language = 1033;
skillsInfo.WebTemplate = “STS#1”;
skillsInfo.Url = “Conocimiento”;
skillsInfo.UseSamePermissionsAsParentSite = true;
Web skillsWeb = remoteWeb.Webs.Add(skillsInfo);
skillsWeb.QuickLaunchEnabled = true;
remoteCtx.ExecuteQuery();

Una aplicación de SilverLight: En este caso cargaríamos las siguientes librerías en nuestra aplicación de SilverLight para poder trabajar con los objetos de Sharepoint:

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

En el caso de SilverLight, disponemos del método Application_Startup del fichero de configuración App.xaml.cs que nos permite configurar nuestra aplicación y por tanto iniciar el contexto que se necesita para el modelo cliente.

private void Application_Startup(object sender, StartupEventArgs e)
{
ApplicationContext.Init(e.InitParams, SynchronizationContext.Current);
this.RootVisual = new MainPage();
}

Ya en un control de usuario, haré referencia a este mismo contexto y ya podré trabajar con los mismos objetos que con la aplicación de .NET

clientCtx = new ClientContext(ApplicationContext.Current.Url);

Con Silverlight, simplemente hay que tener el cuidado de llamar al método ExecuteQueryAsync(), ya que las llamadas desde SilverLight deben ser hechas de modo asíncrono y así no bloquear el hilo de la ventana principal.

Una aplicación de Javascript: Toda la interfaz de la botonera (ribbon) de Sharepoint 2010 está hecha en Javascript soportando AJAX. Es por tanto el navegador el que carga ahora con todo ese gasto liberándolo del servidor. Puesto que es Javascript, podemos hacer referencia a el fichero sp.js que es el que soporta el modelo de Javascript de Sharepoint con esta sentencia.

<SharePoint:ScriptLink ID=”showDialog” runat=”server” Name=”sp.js” Localizable=”false” LoadAfterUI=”true” />

A partir de ahí, podemos mostrar y ocultar capas diseñadas en html con la etiqueta <div> y que nos permite diseñar formularios o cuadros de diálogos modales. Cuando añadimos un doc a una librería o creamos un fichero nuevo, el cuadro de diálogo que muestra Sharepoint 2010 está diseñado con html y Javascript. Desde el fichero sp.js, podemos llamar a la función SP.UI.ModalDialog.showModalDialog(dialog) para mostrar un cuadro de diálogo diseñado por nosotros. En este caso dialog es una variable de Javascript que hace referencia a una capa div hecha en html. Del mismo modo si referenciamos al método thisDialog.close(); de Javascript podemos ocultar dicha capa y por tanto el formulario. Vemos que realmente trabajar con cuadros de diálogos en Sharepoint 2010 es muy sencillo, osea trabajar con Javascript.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: