Angular

         Aplicaciones de página única

La evolución de la programación

Con nuevas tecnologías vienen nuevas oportunidades

Cada vez con más frecuencia tenemos avances en los estándares y en las herramientas que disponemos para programar aplicaciones. Pero no ha sido siempre así. El viaje hasta donde nos encontramos hoy en día ha sido largo…

La única forma de programar que existía
Casi olvidados son los días de Fortran y COBOL. Visual Basic, C y C++ han quedado anticuados. Con la llegada de la internet, HTML, programación servidor (PERL, PHP) y programación cliente en la forma de JavaScript, hemos podido olvidarnos de distribución de aplicaciones, instalaciones y actualizaciones. La última versión siempre está online. Pero entonces luchamos contra los navegadores, creando versiones distintas de las aplicaciones según lo que cada navegador puede hacer.

Durante mucho tiempo lo que se podía conseguir usando tecnologías de internet no era capaz de duplicar las aplicaciones nativas. Actualmente, con la excepción de unos casos especiales, esto ya no es así.Hace mucho tiempo

La adolescencia de JavaScript
En los últimos años HTML y ECMAScript (el estándar en el que se basa JavaScript) han visto cambios radicales para afrontar las nuevas necesidades de los usuarios de Internet y sus nuevos dispositivos móviles que ya son la forma más habitual de conectarse.

JavaScript históricamente ha sido criticado por muchos programadores ‘tradicionales’ por su falta de ciertos conceptos que, según ellos, son necesarios para que sea una plataforma de desarrollo de nivel ‘enterprise’. Estas críticas han sido contestadas. Bibliotecas de funciones como jQuery empezaron a aparecer hace 10 años y han evolucionado hasta una serie de nuevos frameworks de programación avanzado y listo para su uso en cualquier organización.2006

AngularJS - Aplicaciones de página única (Single Page Applications - SPA)
AngularJS empezó en 2010 por Google como un framework de aplicaciones de páginas únicas – una aplicación que parece tener varios ‘páginas’ pero sin la necesidad de recargar el navegador cada vez que se cambia el interfaz.2010
Una plataforma madura, potente y eficaz
Ahora conocido simplemente como Angular, está en su v6.0 soportado por muchas otras organizaciones incluyendo Microsoft. Está implementado y usa TypeScript – una evolución propio de JavaScript aprovechando las últimas novedades de ECMAScript que se compila a JavaScript para poder ser ejecutado en navegadores más antiguos.

Combinando Angular con una plataforma de diseño responsivo como Bootstrap tenemos la capacidad de crear aplicaciones modernas que funcionan en cualquier dispositivo.Hoy

¿Pero donde se guardan los datos?

La mayoría de las aplicaciones requieren que se comparte datos entre los usuarios y por esto se requiere un servidor.

Por suerte la evolución no ha sido limitado a programación cliente – la programación servidor también ha avanzado y ahora no tenemos que aguantar la pesadilla de interminables ‘postbacks’ que existía en .Net. Node.js es una nueva plataforma servidor que se programa con JavaScript permitiendo que usamos la misma idioma de programación para todos los partes de una aplicación moderno.

El enfoque de la programación servidor ha cambiado radicalmente también – en vez de intentar ejecutar todo la lógica de una aplicación y presentar un interfaz al usuario, ahora se limita a proporcionar servicios web que las aplicaciones en los navegadores pueden consumir. La mayoría de los idiomas de programación servidor modernos permiten la creación de servicios web y la generación de métodos genéricos para el subsistema, que sea base de datos, ERP u otro. Esto permite que se usen los mismos servicios web en múltiples aplicaciones, reduciendo de forma importante la cantidad de programación necesario.

Los beneficios  son múltiples: mejor escalabilidad, mejor experiencia para el usuario, un entorno de desarrollo más simple con herramientas más potentes y automatizadas para reducir el tiempo de desarrollo y mejorar la calidad de las aplicaciones.

SharePoint y Angular

Un matrimonio hecho en la nube

Jarmit Consulting ha estado siempre a la vanguardia de la tecnología de Internet. En SharePoint hemos aplicado JavaScript y jQuery para dar funcionalidad adicional a la plataforma desde SharePoint 2003 pero entonces solo podíamos modificar elementos de la interfaz ya creados por SharePoint.

Con SharePoint 2007 y los primeros servicios web a base de SOAP 1.0 y XML tuvimos la capacidad de interactuar con la información y ficheros guardados en SharePoint sin tener que recurrir a programación servidor.

Ahora en SharePoint Online y SharePoint 2016 tenemos una amplia API REST que nos permite acceder, crear y modificar cualquier información dentro del entorno y páginas de WebParts para alojar nuestras aplicaciones. Construidos encima de sitios, listas y bibliotecas, las aplicaciones en Angular pueden aprovechar la funcionalidad y seguridad ya presente en SharePoint en vez de tener que reprogramarlo – otro gran ventaja que permite desarrollar aplicaciones en tiempos muy reducidos.

En Office 365 tenemos el nuevo Graph API que nos permite interactuar con otros servicios como OneDrive y Teams. Mientras que su cobertura todavía no es completa y Microsoft sigue añadiendo funcionalidad a la plataforma, seguramente será una potente herramienta en el futuro próximo.

SharePoint Online

No toques ese servidor

Antes de la nube la forma tradicional para añadir funcionalidad a SharePoint ha sido la programación servidor en una forma u otra. Por razones de estabilidad y seguridad Microsoft no permite estos tipos de desarrollos para SharePoint Online. La única opción hasta ahora ha sido los ‘Add-ins’ – apps en Azure separadas de SharePoint pero con cierta dificultad, capaz de interactuar con datos.

SPA’s creado en Angular u otros frameworks similares eliminan todas las dificultades y costes adicionales relacionadas con los Add-ins.

Migraciones

Programar una vez – no cada vez

Muchas empresas y organizaciones están usando versiones anteriores de SharePoint todavía y siguen teniendo la necesidad de añadir la funcionalidad especial que cada una necesita. Con aplicaciones creado en Angular, cuando llega la hora de migrar a la última versión de SharePoint on-premise o dar el salto a la nube con SharePoint Online, no hace falta reprogramar. Como la interacción entre la aplicación y SharePoint va exclusivamente sobre sus servicios web que Microsoft tienen que mantener en versiones nuevas es posible crear una aplicación para SharePoint 2007, 2010 o 2013 y pasarlo a SharePoint 2016 sin modificaciones.

Las opciones son claras: pagar cada vez para reprogramar aplicaciones ‘tradicionales’ bajo SharePoint cuando se migra a la versión nueva o pagar una vez solo para un app de Angular con todas las otras ventajas que lleva.

Mirando al futuro

Microsoft va del mismo camino

Los ‘add-ins’ como plataforma para extender SharePoint han resultado demasiado complicados para implementarlos facilmente. Microsoft lo ha reconocido y una nueva plataforma – SharePoint Framework o SPfx – ha sido creado para sustituirlo.

SPfx es una plataforma para programación cliente que permite a los desarrolladores usar las últimas herramientas y tecnologías en sus aplicaciones. Por ahora tiene soporte para aplicaciones basado en los frameworks React, Knockout y por supuesto AngularJS y Angular.

Mientras que SPfx es algo inmaduro todavía, Microsoft está trabajando duro para mejorarlo y completar la documentación y soporte que los programadores van a necesitar para poder usarlo.

Hasta que SPfx está probado y listo para entornos de producción, vamos a seguir con nuestro stack de desarrollo, respaldado por el hecho que Microsoft está trabajando en la misma dirección.