Optimización del Rendimiento en Aplicaciones Canvas – Parte I

Crear aplicaciones Canvas es más fácil que nunca, pero mantenerlas rápidas, ágiles y escalables es donde empieza el verdadero trabajo.

Crear aplicaciones Canvas es más fácil que nunca, pero mantenerlas rápidas, ágiles y escalables es donde empieza el verdadero trabajo.

A medida que las aplicaciones crecen en complejidad, se conectan a múltiples fuentes de datos y sirven a más usuarios, el rendimiento puede convertirse rápidamente en un desafío. Las pantallas lentas, los largos tiempos de carga, las advertencias de delegación y el comportamiento impredecible suelen ser síntomas de decisiones tomadas al principio del desarrollo.

La buena noticia es que la mayoría de los problemas de rendimiento en Canvas Apps se pueden evitar con patrones de diseño adecuados y con una comprensión clara de cómo Power Apps evalúa fórmulas, recupera datos y carga controles en cada pantalla.

Ya sea que estés optimizando una solución existente o sentando las bases para una nueva, adoptar prácticas centradas en el rendimiento garantiza una experiencia más fluida para tus usuarios y una aplicación más fácil de mantener para tu equipo.

Esta es la primera parte de una serie de artículos sobre este tema. ¡Estad atentos para más novedades!

Monitorización

Empecemos por explorar las opciones disponibles para entender dónde pueden estar los problemas de rendimiento.

Herramienta Monitor

La herramienta Monitor es una de las funciones más potentes, aunque poco utilizadas, disponibles para los desarrolladores de Canvas Apps. Piénsalo como una radiografía para tu aplicación: revela lo que ocurre entre bastidores cada vez que un usuario abre una pantalla, pulsa un botón o activa una fórmula.

Aunque las aplicaciones pueden parecer simples, las Canvas Apps generan una gran cantidad de actividad en segundo plano: llamadas de red, consultas de datos, evaluaciones de controles, actualizaciones de componentes y más. Monitor captura todo esto en tiempo real.

Monitor es una herramienta de diagnóstico en tiempo real que rastrea y visualiza cómo se comporta tu aplicación Canvas durante la ejecución.

Registra todos los eventos significativos, incluyendo:

Puedes ejecutar Monitor desde Power Apps Studio o conectarlo a una app publicada que use otra persona. Esto la hace extremadamente valiosa no solo para el desarrollo, sino también para la resolución de problemas reportados por los usuarios finales.

Captura de pantalla de la herramienta Monitor

Captura de pantalla de la herramienta Monitor.

Aunque la herramienta Monitor es perfecta para diagnósticos en tiempo real durante el desarrollo y la resolución de problemas, no está diseñada para un seguimiento continuo y a largo plazo del rendimiento. Ahí es donde entra Application Insights.

Application Insights (App Insights), parte de Azure Monitor, ofrece un enfoque centralizado, escalable y basado en análisis para entender cómo se comportan tus aplicaciones Canvas a lo largo del tiempo, en todos los usuarios, todos los dispositivos y todas las sesiones.

Application Insights es un servicio de telemetría y monitorización basado en la nube que recopila métricas detalladas, trazas, errores y análisis de uso de tus aplicaciones. Cuando se integra con las aplicaciones Canvas, te permite rastrear:

A diferencia de la herramienta Monitor, que es de tipo sesión, Application Insights captura datos de forma continua, incluso cuando no estás observando activamente la aplicación. Esto la hace ideal para entornos donde las apps se usan a gran escala, en diferentes regiones o departamentos.

App Insights y Monitor son más efectivos cuando se usan juntos, porque cumplen funciones diferentes pero complementarias.

Datos de uso y telemetría de Application Insights

Captura de pantalla de parte de la información rastreada por Application Insights.

Trazado personalizado

Aunque Monitor y Application Insights te ofrecen capacidades de diagnóstico muy potentes fuera de la app, a veces necesitas datos de rendimiento desde dentro de la propia aplicación. Esto es especialmente útil cuando:

Aquí es donde la función Trace() de Power Apps se vuelve extremadamente valiosa. Permite escribir entradas de telemetría personalizadas que pueden visualizarse en Monitor o enviarse a sistemas externos de telemetría como App Insights.

La función Trace() te permite registrar eventos personalizados directamente desde tu código Power Fx. Cada traza puede contener:

Por ejemplo:

Ejemplo de código de trazas personalizadas en Canvas Apps

Estos eventos aparecen en:

Esto significa que puedes crear entradas de telemetría precisas y definidas por el desarrollador que te dicen exactamente qué ocurrió y cuándo.

Power Fx no tiene una función de «temporizador» incorporada, pero puedes crear fácilmente mediciones de rendimiento usando:

Por ejemplo:

Resultados de trazas de rendimiento en Canvas Apps

En resumen, la función Trace() transforma tu aplicación Canvas de una caja negra a una aplicación completamente instrumentada. Creando temporizadores de rendimiento personalizados directamente en Power Fx, puedes medir tiempos reales de ejecución, solucionar comportamientos lentos y enviar telemetría a sistemas de monitorización empresarial.

Este enfoque es sencillo de implementar, muy flexible y muy valioso para crear aplicaciones Canvas rápidas y fiables.

Fuentes de datos

Las aplicaciones Canvas admiten muchas fuentes de datos, pero las dos más utilizadas en las organizaciones son Dataverse y SharePoint. Aunque ambos pueden impulsar aplicaciones robustas, se comportan de forma muy diferente en cuanto a rendimiento, escalabilidad, delegación y relaciones de datos. Comprender sus fortalezas y limitaciones es esencial para construir aplicaciones rápidas y fiables.

Dataverse

Dataverse es una plataforma de datos de nivel empresarial basada en la nube, diseñada específicamente para Power Apps, con capacidades relacionales, tipos de datos ricos y características de rendimiento sólidas. Cuando el rendimiento importa, Dataverse suele ser la mejor opción, especialmente para aplicaciones medianas y grandes.

Dataverse ofrece:

Gracias a estas características, Dataverse escala mucho mejor que SharePoint para aplicaciones empresariales.

Una de las características más fuertes de Dataverse es su modelo relacional. Las tablas pueden enlazarse a través de:

¿Por qué las relaciones son importantes para el rendimiento?

SharePoint

SharePoint es extremadamente popular como fuente de datos porque es sencillo, familiar y ampliamente disponible. Sin embargo, no fue diseñado como una base de datos relacional de alto rendimiento, y eso significa que los desarrolladores deben ser conscientes de sus límites.

¿Dónde funciona bien SharePoint?

SharePoint encaja cuando:

Si está correctamente optimizado, SharePoint puede ofrecer un buen rendimiento, pero solo si diseñas teniendo en cuenta sus limitaciones.

Las listas de SharePoint pueden crecer con el tiempo y, una vez que superan los 5.000 elementos, la plataforma impone un «umbral de vista de lista» que afecta al filtrado y a la ordenación. Aquí es donde las columnas indexadas se vuelven esenciales.

¿Por qué importa la indexación?

Porque mejora el rendimiento del filtrado en el lado del servidor. SharePoint devuelve resultados más rápido y con menos tensión sobre el servidor.

Además, si intentas filtrar datos basándote en una columna no indexada y el número de elementos de la lista supera los 5.000, la consulta simplemente no devolverá nada.

Optimización de consultas

Uno de los conceptos más importantes en el rendimiento de Canvas Apps es la delegación: el proceso por el cual Power Apps convierte tus fórmulas en consultas que se ejecutan directamente en la fuente de datos (Dataverse, SharePoint, SQL, etc.).

Entender cómo funciona la delegación te permite diseñar fórmulas que escalen, evitan resultados incompletos y previenen operaciones de red lentas. La delegación no es solo un detalle técnico: determina fundamentalmente el rendimiento de tu aplicación.

¿Qué es la delegación?

Cuando escribes una fórmula, Power Apps debe decidir si puede enviar este filtro al servidor (Dataverse o SharePoint) o si debe:

Esta es la diferencia entre:

Si la fórmula es delegable, Power Apps la traduce en una consulta que la fuente de datos entiende. Si no es delegable, Power Apps recupera solo la primera parte del conjunto de datos (por defecto = 500 filas, máximo = 2.000 filas) y procesa el resto localmente, lo que lleva a registros incompletos, carga lenta y comportamientos impredecibles.

¿Cómo decide Power Apps qué columnas y tablas relacionadas consultar?

Cuando tu aplicación se conecta a una fuente de datos como Dataverse o SharePoint, no carga todos los campos ni todas las tablas relacionadas por defecto. En su lugar, Power Apps determina dinámicamente qué datos son necesarios basándose únicamente en las fórmulas de Power Fx utilizadas en toda la aplicación.

El motor interno de Power Apps analiza tus fórmulas y crea un plan de ejecución para consultas. Ese plan determina:

Entender cómo Power Apps decide esto es fundamental para el rendimiento, especialmente con conjuntos de datos grandes o pantallas complejas.

Power Apps utiliza un modelo de «poda de columnas»: solo solicitará las columnas que tu app realmente referencia.

En cuanto a las tablas relacionadas, los campos de búsqueda crean relaciones. Cuando haces referencia a una consulta, Power Apps puede obtener datos relacionados de otras tablas.

¿Qué desencadena consultas relacionadas con tablas?

Si las relaciones están correctamente definidas en Dataverse:

Conclusión

Esta es la primera parte de una serie de artículos sobre este tema.

En artículos posteriores, seguiremos explorando cómo la forma en que se diseñan las pantallas y las fórmulas también influye en el rendimiento de tus aplicaciones.

Si tienes dificultades para optimizar el rendimiento de alguna de tus aplicaciones y necesitas ayuda, no dudes en CONTACTA AHORA.

Redes relacionadas: