Migrar .NET MAUI tu librería Xamarin.Forms

Table of Contents

Si necesita migrar a .NET MAUI su librería de Xamarin.Forms, estas en el lugar correcto. Aquí, el enfoque se centra en actualizar una librería de Xamarin.Forms a .NET MAUI. De igual manera, esto le resultará útil si necesita actualizar cualquier libreria a .NET 6.

Tu código base

Si tiene una librería para Xamarin.Forms probablemente destinada a .NET Standard, Xamarin.iOS y MonoAndroid porque está compartiendo código entre plataformas. Parte de su código puede estar listo para en la actualización, y otros no. Pasará por un proceso que implica ordenar los proyectos y determinar qué actualizar, abandonar o reescribir.

¿Refactorizar o reescribir o bifurcar?

Una vez que cambie el objetivo del framework, tendrá que mirar cada uno de sus proyectos uno por uno y ver si tiene algún problema de compatibilidad. Es posible que descubras que simplemente no tienes que hacer nada. Y en algunos casos, es posible que tenga que actualizar algún código.

La refactorización implica actualizar el código existente para que funcione en el nuevo entorno bajo .NET 6.

La bifurcación significa tomar el código antiguo, copiarlo y pegarlo en un nuevo proyecto de .NET 6 y hacer que se ejecute allí. Si viene de .NET Standard, probablemente no necesite hacer esto, pero es posible que deba actualizar algunos espacios de nombres.

Sugerencias para migrar a .NET MAUI las librerias de Xamarin.Forms

El proceso de migración de librerías de Xamarin.Forms a .NET MAUI puede ser fácil o difícil dependiendo de la librería y las dependencias que tenga. Aquí hay algunos consejos.

TIP 1: Comprenda sus dependencias

Si su librería tiene dependencias de otras librerías o proyectos, debe tomarse un tiempo para examinarlos y ver qué puede o no puede migrar. Los paquetes NuGet externos de los que dependen los proyectos también deben existir en .NET 6.

TIP 2: Actualizar el SDK de proyecto de Visual Studio (.csproj)

El formato más reciente (estilo SDK) requiere una configuración explícita mínima y permite compilar el código (destino) para .NET Framework y .NET 6 o .NET Standard.

🚨IMPORTANTE

Antes, crear la librería se tenía que hacer referencia al SDK de MSBuild.Sdk.Extras, pero ahora debe hacer referencia a Microsoft.NET.Sdk si desea que funcione.

Aquí un ejemplo

<!-- Old SDK reference -->
<Project Sdk="MSBuild.Sdk.Extras">
   ...
</Project>

<!-- New SDK reference -->
<Project Sdk="Microsoft.NET.Sdk">
   ...
</Project>

TIP 3: Multi-target en .NET 6

En primer lugar, debe leer esta documentación de Microsoft.

Cuando los proyectos utilizan el formato de proyecto estilo SDK, puede intentar compilar en .NET 6 o .NET Standard. Consulte esta documentación sobre la segmentación múltiple. En nuestro caso, es posible que requiera que se dirija a .NET 6. Si se dirige a plataformas nativas como MonoAndroid Xamarin.iOS, debe probar su código con las nuevas librerías de plataforma nativas de .NET 6.

Lista de frameworks y versiones

Una vez que conozca sus marcos de trabajo de destino, puede hacerlo, puede agregar las librerías de .NET 6 que necesita.

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFrameworks>net6.0;net6.0-android;net6.0-ios</TargetFrameworks>
    ...
  </PropertyGroup>

</Project>

TIP 4: Solucionar problemas de código

Apuntar a la versión más reciente de .NET 6 puede causar algunos problemas de compilación y dependencia. Es posible que algunas librerías .NET no tengan versiones compatibles con .NET 6. Debe solucionar todos los problemas de código que aparecen.

Si en .NET 6 falta una librería que utilices, deberá buscar una alternativa o escribir el código usted mismo. Lo mejor es encontrar una librería compatible más reciente y reemplazar el código existente con código que use la nueva librería. De lo contrario, deberá usar #if con diferentes rutas de código para ambos destinos.

Puede aprovechar esta oportunidad para refactorizar el código existente y agregar pruebas unitarias, etc. Debería poder actualizar todos sus proyectos sin cambiar demasiado el código original.

💡TIP

Donde .NET 6 es incompatible con código legacy, tu puedes usar #if para que el código antiguo pueda permanecer igual.

TIP 5: No te sobre esfuerces

Busque formas de evitar copiar y pegar código. Es posible que el código anterior no sea tan diferente en .NET 6, por lo que normalmente puede encontrar una manera de reutilizar el código.

Mantenga los nombres de archivo iguales durante todo el proceso. Si mueve archivos a nuevas carpetas, etc., tendrá muchas dificultades para fusionar.

Resumen

Actualizar el código base en la mayoría de los escenarios puede ser fácil. Ningún esfuerzo en absoluto. Si desea actualizarse y obtener todos los beneficios de .NET 6, debe actualizar sus frameworks de destino.

Además, si desea que sus librerías se consuman por la comunidad de .NET MAUI, debe actualizar su librería.

¡Y oye! No estás solo, si necesitas ayuda solo pregunta en Twitter con los hashtags #dotnetmaui #dotnet y estaremos ahí para ti. Además, si necesitas algo siempre puedes escribirme en Twitter a @luismatosluna.

Espero que encuentres útil esta publicación. Un abrazo, y hasta la próxima.

Share this content!

Facebook
Twitter
LinkedIn
Telegram
WhatsApp