Dominando la Gestión de Versiones en Aplicaciones .NET MAUI: Parte I
- Miguel Angel Barrera
- 30 ago 2023
- 3 Min. de lectura
La gestión de versiones en las aplicaciones es un aspecto crítico del desarrollo de software. Mantener un control preciso de las versiones es esencial para identificar y comunicar claramente las diferentes iteraciones de una aplicación.
Con la llegada de .NET MAUI y su creciente popularidad, es aún más crucial comprender cómo manejar y sincronizar diferentes números de versión en el proceso de desarrollo y entrega.
Este artículo explora la manera de establecer y sincronizar números de versión en el desarrollo y distribución de aplicaciones utilizando la flexibilidad que ofrece .NET MAUI y Azure DevOps.
La Importancia de la Gestión de Versiones
Antes de sumergirnos en los detalles técnicos, recordemos por qué la gestión de versiones es fundamental en el desarrollo de software. Cada nueva versión de una aplicación no solo debe ser clara y coherente en sí misma, sino que también debe ser rastreable para fines de depuración y seguimiento. Una gestión adecuada de versiones permite identificar problemas específicos en versiones anteriores, rastrear cambios y mejorar la comunicación con los usuarios finales.
¿Qué ofrece .NET MAUI respecto al versionado?
En mi equipo, siempre ha sido un quebradero de cabeza la hora de tener que versionar aplicaciones. En Xamarin, había que ir a los proyectos nativos y realizar una acción diferente por cada plataforma que se soportase. Ahora con .NET MAUI, nuestra vida es mucho mas fácil. Ahora tenemos una propiedad en el .csproj que nos permite de forma unificada establecer el numero de versión en todas las plataformas.
<!-- Versions -->
<ApplicationDisplayVersion>1.0</ApplicationDisplayVersion>
<ApplicationVersion>1</ApplicationVersion>
Paso 1: ApplicationDisplayVersion vs ApplicationVersion
El primer paso es entender las diferencias entre dos propiedades clave en .NET MAUI.
ApplicationDisplayVersion: Este es un valor de tipo string que se muestra a los usuarios para identificar las distintas versiones de la aplicación. Por ejemplo, "1.0.1".
ApplicationVersion: En contraste, este es un número entero utilizado para identificar las diferentes versiones internamente. Normalmente no se muestra al usuario y debe aumentar de forma incremental, por ejemplo, "10043".
Paso 2: Integrar con Azure DevOps
En tu pipeline de Azure DevOps, tienes la capacidad de personalizar cada paso del proceso de desarrollo. Si estás utilizando .NET MAUI y deseas tener diferentes números de versión para diferentes compilaciones, puedes lograrlo utilizando el comando dotnet publish y pasándole los argumentos correspondientes.
dotnet publish -f net6.0-android /p:ApplicationDisplayVersion=1.1 /p:ApplicationVersion=2
En este ejemplo, estamos definiendo los números de versión utilizando las propiedades ApplicationDisplayVersion y ApplicationVersion que vimos anteriormente. Esto permite que cada compilación tenga sus propias versiones únicas, que se reflejarán tanto en la aplicación como en su presentación al usuario.
Ejemplo completo de pipeline:
parameters:
- name: ApplicationDisplayVersion
displayName: App Version (ej. 1.0.0)
default: 1.0.0
type: string
- name: AppVersionBuild
displayName: Build App Version (ej. 1)
default: 1
type: string
pool:
vmImage: 'windows-2022'
variables:
- name: csproj
value: 'src/Mobile/FreyaMobile/FreyaMobile.csproj'
jobs:
- job: 'Android_Bundle'
steps:
- task: UseDotNet@2
inputs:
packageType: 'sdk'
version: '7.x'
includePreviewVersions: false
- task: CmdLine@2
displayName: "Install maui workloads"
inputs:
script: 'dotnet workload install maui-android maui-ios'
- task: DotNetCoreCLI@2
displayName: "Build android"
inputs:
command: 'publish'
publishWebProjects: false
projects: '$(csproj)'
arguments: '-c Release -f net7.0-android /p:ApplicationDisplayVersion=$(ApplicationDisplayVersion) /p:ApplicationVersion=$(AppVersionBuild)'
Beneficios de esta Estrategia
Mayor Control: Diferentes números de versión para diferentes compilaciones proporcionan un mayor control sobre las versiones específicas de la aplicación, lo que es útil para identificar problemas y rastrear cambios. Esto resulta especialmente valioso para la identificación de problemas y el seguimiento de cambios.
Automatización: Con la automatización a través de Azure DevOps, puedes garantizar que cada compilación tenga la versión adecuada, sin errores humanos.
Conclusión
La gestión efectiva de versiones en aplicaciones .NET MAUI es esencial para un desarrollo exitoso. Azure DevOps y las propiedades ApplicationVersion y ApplicationDisplayVersion simplifican y mejoran este proceso. Al personalizar versiones para cada compilación, mantienes la coherencia en la comunicación con los usuarios finales. Aprovecha estas herramientas para simplificar tu flujo de trabajo de desarrollo y entregar aplicaciones de alta calidad con números de versión claros y precisos.
Próximos posts
Próximamente veremos como es posible desde Devops, automatizar el proceso de establecer numero de versión, y que se establezcan automáticamente números de versiones coherentes, sin tener que preocuparnos por eso. Minimizando aun mas los errores.
Comments