El pasado 17 de agosto se presentó el nuevo “SharePoint Framework” (SPFx) pensado para mejorar el desarrollo de la personalización de la interfaz de SharePoint. Basado en código cliente open source, se ha modernizado todo el ciclo de vida del desarrollo incluyendo herramientas como npm, TypeScript, yeoman, gulp, webpack, React, Sass …

Actualmente se encuentra en Preview y está pensado para utilizarse tanto en on-premise como en Online, desde páginas de publicación o en páginas basadas en el nuevo modelo de páginas que se liberará en breve en Office365. Desde la página de SPFx encontraremos toda la información para empezar a trabajar, ejemplos y los pasos para configurar el entorno.

SharePoint Framework está compuesto por un conjunto de librerías JavaScript, que utilizaremos con TypeScript como ‘lenguaje’ principal de desarrollo, pudiendo utilizar otros frameworks de JavaScript como Angular o React. Se apoya en npm para la gestión de paquetes de la solución, facilitando la instalación y actualización de componentes y librearías al proyecto.

Como motor de ejecución de JavaScript para las herramientas de desarrollo se utiliza Node.js junto con Gulp que se encargará de la ejecución de tareas de construcción y compilación del proyecto.

Para facilitar la creación inicial del proyecto Microsoft ha implementado una plantilla de yeoman con la que poder crear nuestros proyectos y empezar a desarrollar fácilmente.

Un gran cambio silencioso

Aunque para los desarrolladores tradicionales de SharePoint pueda resultar un cambio grande en el enfoque de las soluciones, sin duda SPfx ofrece nuevas oportunidades de extensión de SharePoint y se acerca a las herramientas más actuales en el mundo de desarrollo web y con el uso de CSOM.

Desde los inicios de SharePoint Online, Microsoft se ha esforzado en buscar mecanismos que permitan la personalización de SharePoint respetando la disponibilidad del servicio y la compatibilidad entre nuestras personalizaciones y las actualizaciones.

En un primer momento aparecieron las Sandbox Solutions, con las que los desarrolladores podíamos seguir programando con el mismo modelo que estábamos acostumbrados, pero con la garantía de que nuestros desarrollos no tirarían el servidor ni haría ningún reciclado, ya que solo se podía acceder a un subconjunto de elementos del MO y se desplegaba por un administrador de la colección. Aunque la idea de las soluciones Sandbox era buena, la realidad fue que su depuración y mantenimiento no era tan sencillo.

Por otro lado disponíamos de CSOM
y posteriormente los
servicios REST
, que también nos permitía utilizar el MO de SharePoint pero desde un proceso externo (pe. JavaScript) sin necesidad de preocuparnos de las limitaciones de recursos e instalaciones. Por lo que pronto JSOM junto con el Web Part Script Editor se convirtió en la mejor alternativa de desarrollo en SharePoint Online frente a las Sandbox Solutions.

Pero este modelo también tenía sus carencias, ya que en muchos escenarios es necesario ejecutar código de servidor (pe. para elevar privilegios), apareciendo con SharePoint 2013 los SharePoint Addins (o Apps) con los que podemos integrar una aplicación web externa con SharePoint tanto .NET como no .NET. Esta aplicación, aun estando fuera de SharePoint al estar registrada como Addin es capaz de compartir los tokens de seguridad asignados en SharePoint para y actuar en base a los permisos asignados desde SharePoint.

Como principal problema de los Addins se encuentra en que el Addin se encuentra encapsulado en un Iframe y una URL diferente al site, que no permite una integración sencilla de la interfaz y genera problemas de seguridad en los navegadores.

Con SPFx el desarrollo sobre SharePoint sigue apostando por un modelo basado en cliente pero sobre una base de un framework JavasScript extendido como puedo ser TypeScript, React o Angular. Esto no significa que el modelo de soluciones y Addin esté acabado, podremos seguir desarrollando, pero SPFX será el nuevo modelo por el que se apostará en los próximos años, especialmente para SharePoint Online.

La versión Preview de momento solo estará disponible en Office365 y aunque se espera liberarlo para la versión onpremise de SharePoint 2016 en alguno de los Feature Packs.