Información general de las soluciones
Microsoft Power Platform utiliza la característica de solución de Microsoft Dataverse para administrar aplicaciones, flujos, tablas y hasta componentes de código de desarrollador, como JavaScript y complementos, así como para hacer un seguimiento de todos estos. Las soluciones son contenedores que se pueden utilizar para transportar los activos del proyecto de un entorno a otro. Las soluciones son una parte clave de la estrategia de administración del ciclo de vida de las aplicaciones (ALM) de Microsoft Power Platform.
Las soluciones pueden ser administradas o no administradas
Soluciones no administradas: se utilizan en entornos de desarrollo mientras hace cambios en los componentes. Se pueden crear nuevos componentes dentro de la solución; también se puede añadir todos los componentes existentes dentro del entorno de Dataverse. Las soluciones no administradas se pueden exportar como no administradas o administradas. Las versiones no administradas exportadas de sus soluciones deben insertarse en su sistema de control de origen. Se puede utilizar una herramienta llamada SolutionPackager para preparar las soluciones que se van a insertar. Puede automatizar este proceso utilizando las Microsoft Power Platform Build Tools.
Soluciones administradas: se utilizan para la implementación en cualquier entorno que no sea un entorno de desarrollo para esa solución. Los componentes de las soluciones administradas no se pueden modificar ni eliminar directamente de la solución administrada, y tampoco se pueden añadir otros nuevos. Sin embargo, puede incluir el componente en otra solución no administrada y hacer cambios en ella. Esto crea una dependencia con la solución administrada. Se puede dar servicio a las soluciones administradas con independencia de otras soluciones administradas que haya en el mismo entorno. Si bien puede exportar manualmente una solución no administrada como administrada, es recomendable que las soluciones administradas se generen como artefactos de compilación a partir de un proceso de compilación automatizado.
Las soluciones se pueden crear y administrar a través del Maker Portal, y los desarrolladores también pueden crearlas y administrarlas mediante la API de la plataforma. También existen herramientas como SolutionPackager, Package Deployer, mientras que DevOps y GitHub crean tareas y acciones que los desarrolladores pueden utilizar para realizar y automatizar diversas tareas relacionadas con la solución.
Las soluciones se pueden dividir en capas
Dentro de un entorno pueden coexistir múltiples soluciones. Para gestionar estas soluciones, Dataverse las rastrea mediante un concepto de capa en el nivel de componente de solución individual. Todas las soluciones no administradas reciben un seguimiento como una sola capa, mientras que cada solución administrada recibe un seguimiento por separado. Cuando existen varias capas de soluciones administradas, la última solución administrada instalada en un entorno se utiliza sobre las soluciones administradas previamente importadas. Algunos componentes apoyan la combinación en lugar de un enfoque en el que el último gana. Por ejemplo, un formulario para una aplicación basada en modelo de Power Apps podría modificarse mediante tres soluciones administradas, cada una de las cuales cambiaría diferentes secciones del formulario. En este ejemplo, el resultado fusionado sería un formulario combinado que incluiría los cambios de las tres soluciones administradas. Sin embargo, la capa no administrada siempre está en la parte superior y un cambio en la capa no administrada anulará cualquier cambio de las soluciones administradas en un entorno. En última instancia, el usuario ve una combinación de todas las capas de solución en un entorno. En la siguiente imagen se muestra este concepto.
El concepto de capas es clave para que múltiples soluciones funcionen juntas en un solo entorno. También permite un mayor nivel de personalización de componentes desde una solución administrada.
Dependencias de la solución
Los componentes de la solución a menudo dependen de otros componentes de la solución. El tiempo de ejecución de la solución hace un seguimiento de estas dependencias para que las soluciones no se puedan eliminar si otra solución depende de ellas.
Uso de Power Platform CLI para trabajar con soluciones
Además de usar los Maker Portals, los desarrolladores pueden usar Power Platform CLI para muchas tareas de administración de soluciones.
Por ejemplo, lo siguiente inicializaría un directorio con un nuevo proyecto de solución de Dataverse y luego agregaría una referencia a un componente de control deslizante PCF que creó el desarrollador.
pac solution init --publisher-name developer --publisher-prefix dev
pac solution add-reference --path c:\Users\Downloads\SliderComponent
Creación de paquetes de soluciones
Las soluciones exportadas desde un entorno de Dataverse son un simple archivo ZIP empaquetado que incluye los metadatos. Un archivo binario único no es eficaz ni útil si se coloca en un repositorio de control de código fuente.
Para facilitar el control de código fuente, las herramientas de creación de paquetes de soluciones pueden desempaquetar una solución de Dataverse en una serie de archivos de XML y otros archivos, para que un sistema de control de código fuente los pueda administrar fácilmente. Las herramientas de creación de paquetes de soluciones también pueden volver a empaquetar el archivo ZIP de la solución mediante los componentes extraídos.
Los desarrolladores pueden utilizar las siguientes herramientas que implementan el soporte de creación de paquetes de soluciones:
- Power Platform CLI
- Power Platform Build Tools para implementar la automatización
- Herramienta SolutionPackager
Creación de paquetes de soluciones con Power Platform CLI
Por ejemplo, lo siguiente exportaría una solución de Dataverse y descomprimiría todos los archivos individuales utilizando la lógica de SolutionPackager.
pac solution pack --zipfile C:\MyProject.zip --folder .\MyProjectUnpacked\.
pac solution unpack --zipfile C:\MyProject.zip --folder .\MyProjectUnpacked\.
Herramienta SolutionPackager
La herramienta SolutionPackager se distribuye como parte del paquete NuGet Microsoft.CrmSdk.CoreTools.
La herramienta SolutionPackager es un ejecutable que puede usar para realizar las siguientes acciones:
Extraer: extraer el archivo .zip de la solución en una carpeta
Empaquetar: empaquetar una carpeta en un archivo .zip
Admite diferentes tipos de argumentos de la línea de comandos que puede usar para realizar acciones específicas como parte de la operación de extracción/empaquetado de su solución. Para obtener detalles completos sobre cómo utilizar la herramienta SolutionPackager, consulte el artículo de la herramienta SolutionPackager.
En ocasiones, es necesario administrar elementos, como recursos web o ensamblados de complemento, que se crean y administran en proyectos separados. Para ello, es necesario asignar los archivos de la solución desde su ubicación predeterminada en una carpeta de extracción a su directorio de proyecto correspondiente. Por ejemplo, un ensamblado del complemento normalmente se ubicará en la carpeta de salida del contenedor del proyecto de ensamblado del complemento. Para lograrlo, puede usar el argumento /map para administrar la asignación de estas ubicaciones. Para obtener una explicación detallada sobre cómo crear un documento de asignación XML, consulte Usar el argumento del comando /map.
Aunque SolutionPackager se puede ejecutar manualmente, se usa con mayor frecuencia en procesos de compilación automatizados. Las tareas de compilación de Microsoft Power Platform Azure DevOps y las acciones de GitHub tienen pasos que usan SolutionPackager para descomprimir y empaquetar una solución.