en

Desarrollos Ágiles en Sharepoint utilizando AngularJS

Publicado el

SharePoint se ha convertido en muchas organizaciones, en la plataforma corporativa para el desarrollo de soluciones colaborativas dada su capacidad de gestión documental, gestión de actividades y tareas, e integración con herramienta Office. Como extensión de su funcionalidad, en los últimos años ha proliferado el desarrollo en SharePoint, de aplicaciones de negocio con resultados por lo general lejos de ser óptimos por diferentes motivos.

Situación Actual

  • SharePoint no es una base de datos relacional, por lo que la construcción de aplicaciones transaccionales necesita de bases de datos externas, las cuales suponen una infraestructura tecnológica adicional además de su mantenimiento.
  • La programación de aplicaciones requiere del desarrollo de código a nivel de servidor.
  • El rendimiento de las aplicaciones está en muchos casos condicionado con el rendimiento de SharePoint.
  • Las interfaces gráficas son por lo general pobres.

Nos encontramos con diferentes estrategias de desarrollo de aplicaciones de negocio en SharePoint que por lo general no permiten cumplir con las expectativas de los usuarios finales.

Solución I-nercya

En los últimos años desde I-NERCYA hemos intentado solventar los problemas planteados, principalmente enfocados en:

  • Aprovechar al máximo las funcionalidades nativas de SharePoint: Gestión Documental, Tareas, Listas, Integración con Office.
  • Desarrollar soluciones que no requieran de instalación adicional en SharePoint. Muchos clientes disponen de soluciones SharePoint corporativas que son gestionadas a través de equipos internacionales, los cuales son reactivos a la instalación de componentes out of the box.
  • Poder desarrollar aplicaciones complejas con interfaces gráficas completamente adaptadas a las necesidades de los usuarios.
  • Integrar soluciones BPM (Business Process Management).
  • Aprovechar al máximo los recursos disponibles, liberando de carga a SharePoint mediante la programación de código en cliente.

¿Qué es AngularJS?

AngularJS es un marco de trabajo (framework) creado por Google para desarrollar aplicaciones de página única (SPA: Single Page Application) usando JavaScript y HTML5. Con AngularJS se pueden desarrollar aplicaciones donde toda la lógica de presentación se ejecuta en el navegador Web y abre la puerta a la implementación en JavaScript y ejecución de la lógica de negocio en el navegador web cuando se tienen graves limitaciones para implementar y ejecutar dicha lógica en el servidor.

AngularJS presenta varias ventajas frente al modelo tradicional donde el HTML y los datos viajan constantemente entre el navegador y servidor web:

  • Con AngularJS el HTML es generado en el Navegador, liberando de esta manera al servidor web de esta carga de procesamiento.
  • Las aplicaciones responden mucho más rápidamente a la interacción del usuario debido a que muchas veces el procesamiento se ejecuta en el navegador sin necesidad que interactuar con el servidor web.
  • El tráfico de red se ve notoriamente reducido debido a varias razones, por un lado, con AngularJS se usa HTML estático que es cacheado en el navegador y por otro lado en vez de recibir HMTL + datos del servidor web, la comunicación entre navegador y servidor se realiza básicamente intercambiando datos en formato JSON; y notoriamente, una aplicación de página única implementa la navegación sin dejar la página en la que está, mientras que en el modelo tradicional la navegación suele implicar la carga completa de una nueva página.
  • Separación de la lógica de presentación de la vista a través de una arquitectura MVC, de forma que el código Javascript es independiente al código HTML. El código es extremadamente fácil de testear ya que no dependemos de ningún contexto externo.

Beneficios

AngularJS nos está permitiendo crear aplicaciones de línea de negocio integradas en SharePoint, sin necesidad de desplegar ninguna solución en la granja de servidores y sin ejecutar una sola línea de código personalizado en los servidores de SharePoint, superando de esta manera las serias limitaciones que algunos de nuestros clientes tienen, proporcionándoles además una solución web moderna, atractiva y de rápida respuesta.

Nuestra Aproximación

  • Utilizamos listas de SharePoint para almacenar los datos e información de control.
  • Desarrollamos la lógica de la aplicación utilizando AngularJS bajo su arquitectura MVC.
  • Desplegamos la solución de forma sencilla a través de los siguientes tipos de ficheros:
    • Ficheros HTML para la implementación de las diferentes vistas.
    • Ficheros JS que implementan el Modelo Vista –Controlador.
    • Ficheros CSS para la construcción de la interface gráfica del usuario.
    • Otros ficheros de Recursos, tales como Imágenes, Audio, Video, etc.

Referencias

Entorno Tecnológico

  • Sharepoint
  • AngularJS