Pasión por la tecnología…

julio 5, 2008

WSS 3.0 & MOSS…¿qué pasa con el soporte de AJAX?

Archivado en: AJAX,MOSS,SharePoint — Juan Carlos González Martín @ 14:43

Una de las cuestiones que nos han planteado recientemente en el CIIN es el grado de madurez de la tecnología AJAX en la plataforma SharePoint…la respuesta rápida a esta cuestión es que SharePoint al estar basado completamente en ASP.NET 2.0 debería tener soporte total de AJAX. Sin embargo, después de una cierta labor de investigación, y tras leer varios artículos (algunos de blogguers habituales de Geeks.Ms como Luis Du Solier) sobre el tema, se llega a la conclusión típica de que hay que tener cuidado con estas respuestas rápidas ;). La idea de este post es hacer un pequeño resumen del estado del arte en cuanto a soporte de AJAX en plataforma SharePoint. Empecemos.

AJAX y la plataforma SharePoint

Aunque con el SP1 de la plataforma SharePoint ya tenemos soporte oficial de AJAX 1.0 (ya incluido como parte de .NET Framework 3.5) por parte de Microsoft, no ocurría lo mismo antes del citado SP1 debido mayormente a qué el lanzamiento de la plataforma SharePoint tuvo lugar con anterioridad a la versión 1.0 de ASP.NET AJAX. Por este motivo, hasta el SP1 de SharePoint se podía afirmar únicamente que la plataforma soportaba AJAX parcialmente. Esencialmente, tenemos dos opciones de uso de AJAX en soluciones SharePoint:

  • Utilizando el control Update Panel.
  • Sin utilizar el control Update Panel.

Uso de AJAX 1.0 en SharePoint sin el control Update Panel

En general, dada una aplicación web AJAX habilitado (plantilla ASP.NET AJAX-Enabled Web Site de Visual Studio), el soporte de ASP.NET AJAX sin utilizar Update Panel consiste a grandes rasgos en:

  • Crear los controles o componentes AJAX necesarios (mediante código JavaScript).
  • Añadir la referencia al control AJAX creado (archivo .js) dentro de un control ScriptManager que referencia al control:

<asp: ScriptManager ID=”ScriptManager1” runat=”server”>

               <Scripts>

                              <asp:ScriptReference Path=”control.js”>

               </Scripts>

</asp:ScriptManager>

  • Añadir un placeholder (por ejemplo un simple DIV) en el que definiremos la porción de código JavaScript que se encargará de generar  instancias del control AJAX creado (este control es una clases).

Tal y como he comentado, por defecto SharePoint, al estar construido sobre ASP.NET 2.0, ya soporta algunas de las características de AJAX, pero no todas puesto que el lanzamiento de la plataforma se realizó antes de que estuviese disponible la versión 1.0 de AJAX. De hecho, con el SP1, ya soporta directamente la versión 1.0 de AJAX. Antes del SP1 de la plataforma SharePoint, las opciones para el desarrollo con AJAX en SharePoint (para el que no había soporte oficial) son dos:

  • Sin usar el SharePoint AJAX Toolkit desarrollado por Daniel Larson (MVP de SharePoint), tenemos a su vez dos scenarios de desarrollo de soluciones AJAX en plataforma SharePoint:
    • De manera directa:
      • Una posibilidad de aplicación la tenemos en el desarrollo de web parts. Se trata en este caso de definir componentes JavaScript capaces de ejecutarse en el contexto de una Web Part de SharePoint.
      • La idea es conseguir renderizar en las Web Parts los placeholders HTML y los componentes JavaScript dentro de los límites de las mismas y poder consumir fuentes de datos siguiendo la filosofía puramente AJAX. Es precisamente aquí dónde nos encontramos el primer obstáculo, puesto que los servicios web de SharePoint no están habilitados para scripting, lo que implica la necesidad de construir componentes AJAX para SharePoint que permitan exponer las fuentes de datos de SharePoint como XML, JSON, o text data streams.
      • Los pasos (sin entrar en detalles de implementación) para el desarrollo de una AJAX  web part para SharePoint son:
        • Instalar ASP.NET AJAX en los servidores de la granja de SharePoint.
        • Modificar de forma adecuada el archivo web.config para habilitar el runtime de cliente de ASP.NET AJAX en la solución SharePoint particular.
        • Añadir una instancia a la clases ScriptManager teniendo en cuenta que sólo puede haber una instancia por página. Por ejemplo, bastaría con añadir un control Script Manager en la master page de nuestras soluciones SharePoint.
        • Registrar la web part en el cliente siguiendo el patrón Web Part Client Control Registration.
    • De manera indirecta a través de la Smart Part de Jan Tielens que en sus últimas versiones incluye soporte para AJAX:
      • En este caso lo que haríamos es crear los controles de usuario con soporte AJAX.
      • Habría que realizar las mismas modificaciones del web.config que se han comentado.

image

  • Utilizando el SharePoint AJAX Toolkit, se trata de un framework de desarrollo que permite escribir código AJAX para WSS 3.0 & MOSS utilizando el conjunto de librerías ASP.NET AJAX. El toolkit incluye un librería core de scripts para carga de datos en el lado del cliente y transformaciones XSLT, clases base para web parts orientadas al uso de código AJAX y un instalador que permite registrar los elementos requeridos en el web.config. El SharePoint AJAX Toolkit sigue fielmente el más puro estilo de desarrollo AJAX en plataforma ASP.NET: utiliza elementos HTML y componentes JavaScript para atacar fuentes de datos XML usando para ello transformaciones XSLT y end points de servicios web. Entre los elementos que incluye el toolkit tenemos:
    • Dos archivos .js principales que contienen funcionalidad JavaScript preparada para el entorno de SharePoint.
    • Un componente cliente principal, SharePoint.Ajax.XmlComponent, que permite realizar operaciones de carga y transformación de datos XML.
    • Una clase central AjaxWebPart que permite manejar aspectos centrales como asegurar que el Script Manage existe en la página y que se han incluido las librerías centrales del Toolkit.
    • La clase XmlWebPart que es un envoltorio de un componente JavaScript XmlComponent, y que puede servir como clase base para crear Web Parts de AJAX personalizada usando cargas y transformaciones de datos XML.

Nota: Bibliografía recomendada para este punto: Inside Microsoft Windows SharePoint Services 3.0 de Ted Pattison y Daniel Larson (Microsoft Press).

Uso de AJAX 1.0 en SharePoint con el control Update Panel

Otra forma, aunque menos elegante de soportar AJAX en SharePoint es el uso del ASP.NET AJAX Update Panel, que presenta problemas de alto acoplamiento en cuanto a que el control está linkado a fuentes de datos que no son expuesta de manera directa al cliente. Sin embargo, en arquitecturas puramente AJAX la idea es exponer las fuentes de datos a cliente como XML, JSON o streams de datos en modo texto de manera que puedan ser consumidas por múltiples controles. En definitiva, una arquitectura puramente AJAX es mucho más flexible y potente puesto que facilita la reutilización de fuentes de datos en aplicaciones remotas. Los pasos para utilizar el control en Update Panel son los ya comentados para el desarrollo de Web Part que sigan un estilo más puramente Ajax.

Soporte Oficial de AJAX con el SP1 de SharePoint

Con el SP1 de la plataforma SharePoint se ha añadido compatibilidad y soporte oficial para AJAX, lo que incluye el desarrollo de web parts utilizando el AJAX Control Toolkit for ASP.NET y las AJAX 1.0 Extensions (que permite hacer post backs asíncronos). Este soporte oficial está recogido en el KB941955.

Recursos sobre AJAX y SharePoint

Finalmente he recopilado los siguientes enlaces sobre uso de la tecnología AJAX en plataforma SharePoint:

http://www.codeplex.com/sharepointajax

  • AJAX SharePoint List Rotator Web Part:

http://www.doubelclick.com/Lists/Solutions/DispForm.aspx?ID=33

  • Smart Part de Jan Tielens:

http://www.codeplex.com/smartpart

http://www.codeproject.com/KB/aspnet/BaseAjaxSharePointWebPart.aspx

  • Otro ejemplo más de web part construida en AJAX:

http://dotnet.org.za/zlatan/archive/2007/10/12/developing-ajax-web-parts-in-sharepoint-2007.aspx

  • Embebiendo el AJAX Control Toolkit en SharePoint:

http://www.devexpert.net/blog/pt/blog/Embedding-Ajax-Control-ToolKit-into-Shar.aspx

http://support.microsoft.com/kb/941955

Sin más, hasta aquí llega lo que os quería contar sobre AJAX y SharePoint. Espero que el post os haya resultado interesante.

El tema Rubric. Blog de WordPress.com.

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 40 seguidores