PowerApps vs. SharePoint Framework: ¿Cuál es el UI adecuado para ti?

Hola a tod@s! En esta ocasión, quiero comparar dos herramientas clave para el desarrollo de interfaces de usuario en Microsoft 365, especialmente útiles para crear aplicaciones en SharePoint Online.

No se busca determinar la superioridad entre estas herramientas, sino analizar sus características y áreas de mejora. Las protagonistas de esta comparativa son 'SharePoint Framework' y 'PowerApps' de Power Platform.

A nivel de licencias

En el ámbito de las licencias, la complejidad puede generar confusión en su interpretación, como mencioné anteriormente en otra entrada. Recientemente descubrí una licencia con características más limitadas pero que permite el acceso a los portales web de SharePoint Online. Este tipo de licencias son ideales para perfiles de usuarios con puestos rotativos, como los empleados de una tienda que comparten dispositivos en diferentes turnos.

Estas licencias pueden ahorrar mucho dinero a una organización, pero tienen limitaciones, como no ser compatibles con soluciones de PowerApps. Por otro lado, las licencias 'Per App' para PowerApps que se asocian a usuarios en una aplicación y son alrededor de un 75% más económicas que las básicas de Microsoft 365.

Es esencial analizar detenidamente estas opciones dentro de la organización antes de implementar alguna solución. Por ejemplo, si la mayoría de los empleados no requieren licencias básicas y solo necesitan acceso a una aplicación de PowerApp, las licencias 'Per App' pueden ser muy ventajosas. Sin embargo, en organizaciones más grandes o internacionales, gestionar estas licencias puede ser complicado y quizás sea más rentable optar por licencias básicas que permiten el uso ilimitado de aplicaciones compartidas.

Si el costo de las licencias es un obstáculo, la alternativa pasa por SharePoint Framework que no requiere licencias adicionales más allá de la conexión a SharePoint Online.

A nivel de entorno de trabajo

Trabajar en el ecosistema de Power Platform es increíblemente comodo. Todo se realiza desde un entorno web, eliminando la necesidad de instalar herramientas adicionales. Además, las actualizaciones y mejoras introducidas por Microsoft son transparentes para los desarrolladores, lo que garantiza una experiencia fluida y sin interrupciones. Con la creciente variedad de componentes en PowerApps, la implementación de interfaces de usuario se vuelve más atractiva para los usuarios finales.

En contraste, implementar un simple webpart en SharePoint Framework requiere una serie de componentes instalados y espacio en disco. Es importante destacar que, a la fecha de redacción de este artículo, se necesita la versión 16 de Node.js, la cual carece de soporte. Esto plantea desafíos, como posibles brechas de seguridad, procesamiento no óptimo y limitaciones para usar componentes de terceros no compatibles con esta version obsoleta. Un ejemplo lo encontramos con 'Zustand'

La gestión de proyectos en desarrollo con distintas versiones de Node.js puede ser complicada y costosa. Es crucial considerar estas dificultades al elegir entre Power Platform y SharePoint Framework para tus proyectos de desarrollo.

A nivel de despliegue de soluciones

En el ámbito del despliegue de soluciones, el ecosistema de Power Platform ofrece una experiencia sencilla mediante la importación de soluciones de desarrollo a entornos productivos en Microsoft 365. Recientemente, se han introducido mecanismos para despliegue continuo, facilitando aún más el proceso.

Por otro lado, en SharePoint Framework, el despliegue se realiza a través del 'Catálogo de aplicaciones'. Desde este sitio, se decide la instalación a nivel organizacional o en sitios específicos según la lógica de negocio.

Sin embargo, desplegar soluciones SharePoint Framework en múltiples sitios, como entornos de desarrollo y producción simultáneamente, presenta desafíos. Actualizar un paquete en desarrollo afecta al entorno de producción, lo que puede afectar a los usuarios finales. Este problema, originario en SharePoint Framework, plantea dificultades en la gestion al cambio, cuando no se tiene en cuenta este factor de la herramienta.

Ante esto, reclutadores técnicos me han sugerido soluciones como la creación de un segundo tenant para los desarrollos, aumentando los costos y la complejidad. Próximamente, compartiré en un artículo cómo abordar este desafío de manera efectiva en los distintos entornos web del cliente en un único tenant, en respuesta a las solicitudes de mis excompañeros junior.

A nivel de diseñar interfaces de usuarios

Al diseñar interfaces de usuario, SharePoint Framework destaca por su potencial con HTML, CSS y JavaScript, ofreciendo una experiencia agradable. Sin embargo, su implementación requiere consideraciones importantes, como la necesidad de expertos en maquetación y tener en cuenta las limitaciones con componentes de terceros debido a la versión Node.js obsoleta.

En contraste, PowerApps puede carecer de ciertos componentes y funcionalidades, aunque Microsoft ha introducido componentes modernos recientemente. Aun así, su implementación requiere un profundo conocimiento del producto y creatividad para lograr interfaces atractivas.

Un ejemplo notable, de ese conocimiento y creatividad, es la implementación de la página principal de la aplicaicon de Glovo en PowerApps para un concurso, donde logré ganar. Si deseas conocer más detalles sobre esta implementación, puedes encontrarlos en el siguiente enlace: Aplicación de Glovo en Power Apps .

A nivel de conectividades con los repositorios u otros procesos

Dentro del ecosistema de Power Platform, la compatibilidad entre herramientas facilita la implementación de soluciones en PowerApps. Manipular información de varios repositorios y ejecutar procesos en segundo plano resulta rápido y sencillo.

En contraste, en SharePoint Framework, las conexiones a repositorios y procesos en segundo plano son más complejas. Aunque puedes acceder a la información a través de las API oficiales, a menudo se recurre a componentes de terceros como 'PnPjs' para una mejor experiencia de desarrollo.

Además, en Power Platform, la parametrización de aplicaciones mediante 'Variables de entorno' simplifica la adaptabilidad a nuevos entornos o circunstancias. En SharePoint Framework, aunque existen parámetros de configuración, su eficiencia depende de una planificación cuidadosa.

A nivel de otras consideraciones para tener en cuenta

En este apartado, se van a discutir otros aspectos importantes al tomar decisiones sobre cómo implementar soluciones para nuestros clientes.

  • En aplicaciones donde los usuarios cargan archivos, las limitaciones de PowerApps pueden afectar la experiencia del usuario. Para obtener más detalles sobre la carga de archivos desde PowerApps, consulta este enlace: Cargar archivos desde PowerApps a bibliotecas de SharePoint .
  • En mi experiencia, los tiempos de desarrollo con SharePoint Framework suelen ser más prolongados debido a los tiempos de compilación y la complejidad de ciertas mecánicas. Por el contrario, PowerApps permite situarte en fases del desarrollo específicos sin pasar por fases previas, lo que acelera significativamente el desarrollo.
  • En cuanto al control de versiones de las soluciones implementadas, las opciones actuales de PowerApps pueden no ser ideales para trabajar en equipo con estándares de control de versiones.

La reflexión

Al seleccionar un componente visual para una aplicación en SharePoint Online, es fundamental considerar más que el simple el coste.

En mi reflexión sobre la selección de tecnología adecuada, destacan los siguientes aspectos:

  • La colaboración estrecha entre arquitectos de soluciones y propietarios del proyecto es esencial, ya que esta decisión impactará en futuros proyectos de la organización
  • La empatía con la filosofía de la organización, lo que permite comprender mejor sus necesidades
  • Mantener la mente abierta a las evoluciones constantes, tanto en tecnología como en necesidades internas, para garantizar el éxito a largo plazo del proyecto

Entradas populares de este blog

Cargar archivos desde PowerApps a bibliotecas de SharePoint

Menús desplegables relacionados en SharePoint Online

Generar contenido para páginas modernas con JSON