Dataverse vs. SharePoint Online: ¿Cuál es el repositorio adecuado para ti?

¡Hola a tod@s! En esta ocasión, quiero compartir con vosotros una comparativa entre dos importantes repositorios de almacenamiento de información en Office 365, especialmente relevantes cuando se trata de implementar aplicaciones en PowerApps.

El objetivo de este artículo no es determinar cuál es el mejor repositorio, sino más bien analizar sus cualidades distintivas y los puntos a mejorar de cada uno de ellos.

De esta manera, se podrá escoger aquel repositorio que mejor se adapte a las necesidades específicas de nuestros clientes.

Los repositorios a los que hago referencia son las listas y bibliotecas de SharePoint Online y las tablas de Dataverse de Power Platform.

A nivel de licencias

El tema de las licencias para PowerApps puede resultar un tanto confuso debido a los cambios constantes que se realizan en los servicios ofrecidos. Sin embargo, es importante destacar que con la licencia básica se tiene acceso a ambos tipos de repositorios sin coste adicional.

Es relevante mencionar que, si bien no se incurre en costes adicionales al acceder a Dataverse desde Teams o PowerApps, al hacerlo a través de Power Automate, es necesario utilizar conectores Premium.

Una recomendación para optimizar los costes de licencias en la organización es emplear una cuenta de servicio asociada a una licencia Premium, la cual llevaría a cabo todas las operaciones en Power Automate.

Es necesario considerar también que, si los requisitos del proyecto exigen operaciones en Power Automate con el usuario actual de la aplicación de PowerApps, esta sugerencia para reducir los costes mensuales no sería viable.

A nivel de seguridad

En la actualidad, los dos tipos de repositorios, Dataverse y SharePoint Online, ofrecen diversas configuraciones para adaptar la seguridad de las aplicaciones a las necesidades de una organización.

En un panorama competitivo donde las empresas desarrolladoras luchan por proyectos, se vuelve un punto a favor para una organización fidelizarse con una empresa de desarrollo, al ser capaz esta última de educarla en la gestión de permisos y autonomía.

Es esencial comprender que un repositorio Dataverse es similar a una base de datos SQL Server, lo que implica que la gestión de permisos generalmente recae en perfiles muy experimentados, lo que puede generar costes adicionales o sobrecargas de tareas para un departamento de la organización si los permisos cambian con frecuencia.

En este contexto, una orientación más hacia repositorios en SharePoint Online podría ser más adecuada si el objetivo es capacitar a la organización en la gestión de permisos. Sin embargo, es importante tener en cuenta que existen ciertos límites en la aplicación de permisos en listas y bibliotecas cuando el volumen de información supera los 100.000 elementos.

Para obtener más información sobre este tema, pueden acceder al siguiente enlace: SharePoint limits

A nivel de acceso a la información

En este apartado, se centrar en cómo los usuarios finales y gestores pueden acceder y tratar la información en la aplicación, sin abordar el aspecto de la seguridad.

Con los repositorios de SharePoint Online, los usuarios pueden acceder fácilmente a la información a través del sitio web y los permisos otorgados. Pueden visualizarla en diferentes formatos mediante vistas personalizadas, incluso lograr diseños visuales sorprendentes gracias a la función de formatear el contenido mediante JSON.

En el siguiente enlace, encontrarán un ejemplo de cómo dar un diseño único a la información de una lista con un esquema JSON: Generar contenido para páginas modernas con JSON

En contraste, si en el pasado, se almacenaba la información en SQL Server, los usuarios no podían acceder directamente a las tablas del repositorio, utilizar Dataverse podría no ser la opción más adecuada. Esto podría aumentar los costes de desarrollo al requerir interfaces de usuario para manejar eficientemente la información.

Una alternativa, dependiendo de los requisitos del proyecto, es utilizar Power BI para crear cuadros de mando con la información de la aplicación.

A nivel de integridad de datos relacionados

Ambos tipos de repositorios de datos ofrecen la posibilidad de relacionar la información con otros repositorios de la infraestructura.

Con Dataverse, al ser un modelo relacional de tablas, esta capacidad de relacionar datos es sólida y su implementación es bastante sencilla.

En el caso de los repositorios de SharePoint Online, también es posible establecer relaciones entre listas y bibliotecas, pero se debe hacer a través de columnas de tipo 'Búsqueda', las cuales pueden resultar complicadas y controvertidas si no se comprende completamente su funcionamiento, lo que podría generar dificultades.

Una alternativa a estas columnas de búsqueda en SharePoint Online es utilizar el almacén de términos, una opción que puede simplificar la relación de datos y evitar posibles dolores de cabeza en el proceso.

En resumen, ambos repositorios permiten relacionar datos, pero Dataverse ofrece una solución más sólida y fácil de implementar, mientras que SharePoint Online puede requerir un enfoque más cuidadoso y considerar el uso del almacén de términos como una alternativa.

A nivel de despliegue de la infraestructura

El modelo de empaquetar soluciones propuesto por Power Platform es una maravilla al desplegar infraestructuras de un entorno inferior a uno superior. Esto hace que los despliegues de repositorios Dataverse entre entornos sean muy sencillos. Además, recientemente se ha añadido la opción de integración continua entre entornos del mismo tenant de la organización.

Si deseáis tener una comprensión más profunda sobre la integración continua en Power Platform, podéis ver un ejemplo práctico en el canal de YouTube 'Cepa Code'.

En SharePoint Online, no existe una diferenciación de entornos para los sitios web, por lo que desplegar o actualizar un repositorio en un entorno superior requiere opciones específicas:

  • Utilizar la herramienta PowerShell PnP, que permite crear plantillas de esquemas y estructuras para replicarlas en entornos superiores. Esta herramienta reemplaza las antiguas 'Features' de la versión On-Premise de SharePoint implementadas mediante Visual Studio.
  • Otra alternativa es el SharePoint Framework, aunque no puedo proporcionar mucha información al respecto ya que no lo he utilizado.

Es importante destacar que se debe evitar cualquier desarrollo directamente en el sitio web de producción, para evitar problemas de integridad de datos durante las actualizaciones mientras los usuarios realizan operaciones.

A nivel de cargas iniciales

En este apartado sobre el despliegue de infraestructura, es importante mencionar los procesos para cargar las listas que actúan como tablas maestras de datos, como las listas de provincias de un país o los modelos de impresos que los usuarios pueden solicitar en su organización.

En repositorios de tipo Dataverse no muy complejos, una forma efectiva de realizar cargas iniciales es a través de ficheros Excel.

Por otro lado, para repositorios basados en SharePoint Online, se puede cargar información utilizando plantillas PowerShell PnP, lo que evita duplicar la información de carga cuando se ejecuta la misma plantilla con nuevos datos iniciales.

Sin embargo, para niveles de carga de datos más complejos, como las relaciones entre comunidades autónomas, provincias y poblaciones, es fundamental realizar un estudio adecuado para implementar la carga de esta estructura de datos en ambos tipos de repositorios.

Planificar y realizar una carga de datos adecuada a la complejidad de cada repositorio es fundamental para garantizar un despliegue exitoso y un correcto funcionamiento de la infraestructura.

A nivel de búsquedas de la información

Ambos tipos de repositorios enfrentan el problema de los problemas de delegación en consultas complejas en aplicaciones de PowerApps, lo que puede afectar los resultados obtenidos y hacer que no se incluyan todos los registros deseados.

En repositorios basados en Dataverse, aunque sus problemas de delegación están más limitados, aún pueden surgir.

Por otro lado, los repositorios basados en SharePoint Online son más propensos a enfrentar problemas de delegación con mayor frecuencia. Sin embargo, existen técnicas que pueden ayudar a eliminar estas limitaciones. Una de ellas es utilizar el servicio de búsqueda de SharePoint Online y flujos en Power Automate para realizar búsquedas en PowerApps y solventar los problemas de delegación.

En el siguiente enlace de YouTube, 🔎 Search File Content 📃 in Power Apps from SharePoint Document Libraries, el creador de contenido 'Reza Dorrani', especializado en Office 365 y Power Platform , explica cómo utilizar esta técnica para realizar búsquedas dentro de los documentos de las bibliotecas de SharePoint Online.

Otra alternativa para superar las limitaciones de las delegaciones en SharePoint Online es sacar las consultas más complejas fuera de PowerApps y utilizar la herramienta 'PnP Modern Search' para realizar dichas consultas complejas. La elección dependerá de los requisitos establecidos para el proyecto en la organización.

En resumen, aunque ambos repositorios pueden enfrentar problemas de delegación, hay estrategias y herramientas disponibles para mitigar estos desafíos y lograr un funcionamiento más efectivo de las aplicaciones de PowerApps.

A nivel de otras consideraciones a tener en cuenta

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

  • En las tablas de Dataverse, es fundamental considerar la limitación de 128 MB para almacenar archivos en una columna de tipo binario. Es importante señalar que, si el archivo se carga a través de Power Automate, el límite es de alrededor de 75 MB debido a las restricciones del tipo de flujo. Puedes encontrar más información sobre la carga de archivos desde PowerApps en el siguiente enlace: Cargar archivos desde PowerApps a bibliotecas de SharePoint
  • Si se utiliza PowerShell PnP para modelar la infraestructura de los repositorios, se optiene la opción de integrar las plantillas generadas en un control de código fuente para controlar y rastrear el código durante el desarrollo y su evolución.
  • Es crucial comprobar si la organización permite el uso de PowerShell PnP, ya que requiere abrir un servicio en Azure que no es del agrado de la organización. Negociar la creación de una aplicación de servicios en Azure relacionada con los requisitos del proyecto puede ser una alternativa más sencilla.
  • Al integrar tablas de Dataverse con Power BI en el futuro, se debe tener en cuenta una limitación relacionada con los archivos adjuntos en las tablas, ya que Power BI aún no puede procesar ficheros JSON. En este caso, una solución rápida y económica podría ser utilizar Power Automate para copiar el fichero JSON a una biblioteca de SharePoint Online y procesar los informes de Power BI desde ese otro repositorio.
  • Al usar PowerShell PnP con DevOps para almacenar plantillas de infraestructura, hay posibilidades de realizar una integración contigua del desarrollo. Sin embargo, es importante tener en cuenta que este tipo de proceso puede no ser sencillo y su implementación podría aumentar el costo del proyecto.

La reflexión

La elección del tipo de repositorio para una aplicación PowerApps involucra diversos factores a considerar, más allá del obvio "El coste". Educar a la organización sobre estas opciones y futuras estandarizaciones bajo las tecnologías de Microsoft es esencial.

Los arquitectos de soluciones, expertos en las tecnologías de Microsoft, desempeñan un papel crucial al asesorar a la organización en la elección más adecuada. Es común que la organización tenga una idea preconcebida, que puede no ser la más adecuada desde el punto de vista del experto. En este caso, el asesoramiento se enfoca en presentar alternativas que mejor se adapten a sus necesidades para permitirles tomar una decisión informada.

La educación hacia las organizaciones no solo recae en los comerciales, sino que los arquitectos de soluciones deben jugar un papel activo en este proceso. Al educar a la organización sobre las posibilidades disponibles y conociendo su roadmap para los próximos años, se les otorga una visión global para tomar decisiones alineadas con sus objetivos.

En conclusión, la elección del tipo de repositorio en PowerApps debe considerar una amplia gama de factores, que con el asesoramiento exporto y una educación a la organización, son fundamentales para tomar decisiones bien fundamentadas.

Entradas populares de este blog

Cargar archivos desde PowerApps a bibliotecas de SharePoint

La librería