[Article] Actualizar Net Core 3.1 a Net 5.0 Preview 6

Estamos cada vez más cerca del lanzamiento final de .Net 5, la nueva versión de este maravilloso framework creado por Microsoft. Esta nueva versión, como vimos en otros posts, no es simple actualización, es la unificación de lo que conocemos con .Net Core y .Net Framework. Como no es un tema menor, Microsoft ha recomendado migrar todas las aplicaciones que tenemos en versiones anteriores a .Net Core 3.1 a esta versión. Considerando que falta poco tiempo y que muchos tenemos un alma curiosa, les dejo esta guía para actualizarnos a .Net 5 para ir probando nuestras aplicaciones en la nueva versión de la plataforma.

Como hablamos, vamos a ver los pasos necesarios para actualizar un proyecto a la versión actual de .Net 5 que es la Preview 6. Antes de empezar debemos tener 3 puntos en mente:

  1. Si bien esta Preview está bastante avanzadas, pueden tener algunos errores que corresponden a la versión, la recomendación que puedo darles es que revisen las notas de versión para casos particulares. También, tengan paciencia, seguramente tendremos una Preview nueva dentro de poco tiempo.
  2. Tomemos esta práctica como pruebas de futuras migraciones y que los nuevos productos que realizaremos serán de una actualización rápida. Esto quiere decir que una vez que esté la versión final de .Net 5 no debemos quedarnos ahí, hay que comenzar a pensar en la próxima versión.
  3. Cualquier problema o error que encontremos, no dejemos de reportarlo al equipo de Microsoft, esto ayudará a que la próxima preview o versión sea más sólida y estable. También, si encontramos alguna recomendación y opinión. El equipo que lleva adelante este framework se encuentra abierto a todo el feedback que podamos darle.

Lo primero que debemos hacer es bajar la última versión disponible de .Net 5. Puedes descargarla del siguiente link https://dotnet.microsoft.com/download/dotnet/5.0.  Una vez descargado procederemos a instalarlo. Veremos la pantalla de la imagen, solamente debemos seguir los pasos.

Para verificar correctamente la versión, abriremos la consola de Windows y ejecutaremos el comando dotnet –info.

Lo siguiente será instalar la versión Preview de Visual Studio 2019 que en estos momentos se encuentra en la versión 16.7 Preview 3.1, pueden descargarla desde este link https://docs.microsoft.com/en-us/visualstudio/releases/2019/release-notes-preview. En mi caso utilizaré la versión profesional, pero pueden elegir cualquier versión que deseen.

En los pasos de instalación solo elegiremos que deseamos instalar las herramientas de desarrollo “Asp.Net and Web development”.

Crearemos una solución con 3 tipos de proyectos: Web MVC Razor, Web API y Test Unit que los utilizaremos para hacer el proceso de actualización.

El proyecto Web y WebApi están utilizando .Net Core 3.1, están basados en el modelo de MVC. Esta plantilla base tendremos los controladores por defaults que vienen en las plantillas, por ejemplo, en el proyecto WebApi, tendremos un controlador que devuelve información del clima. 

En ambos proyectos debemos actualizar el archivo csproj con la nueva versión. Para poder hacerlo debemos seleccionar el proyecto, botón derecho, “Edit Project File”.

Ambos proyectos tendremos la misma configuración. Podemos ver el código aquí:

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>
</Project>

Debemos modificar el tag “TargetFramework” de netcoreapp3.1 a netcoreapp5.0 quedándonos de la siguiente manera:

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp5.0</TargetFramework>
  </PropertyGroup>
</Project>

Es bastante sencillo, luego compilamos la aplicación para ver que actualice los paquetes y verificar que este todo correctamente. 

Puede ser que sean necesarios algunas actualizaciones más si estamos utilizando algunas referencias como EntityFramework o algún paquete adicional de terceros. Lo pasos recomendados para actualizar son las siguientes:

  1. Actualizar “Microsoft.AspNetCore” a la última versión.
  2. Actualizar “Microsoft.EntityFrameworCore” a la última versión.
  3. Si en nuestro proyecto tenemos algunas dependencias de terceros, es un buen momento para actualizar esas dependencias.

Una vez listos estos pasos, tenemos todos listos para compilar los proyectos. Ejecutaremos cada una de las aplicaciones para corroborar que esté todo correcto.

Nos queda, por último, el proyecto de pruebas de unidad. Si bien, el csproj puede verse un poco diferente, seguiremos los mismos pasos que utilizamos en los proyectos anteriores, modificaremos el csproj. Antes de modificar se ve así:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <IsPackable>false</IsPackable>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />    
    <PackageReference Include="MSTest.TestAdapter" Version="2.1.0" />    
    <PackageReference Include="MSTest.TestFramework" Version="2.1.0" />    
    <PackageReference Include="coverlet.collector" Version="1.2.0" />  
  </ItemGroup>
</Project>

Modificado de la siguiente manera:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <IsPackable>false</IsPackable>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.6.1" />    
    <PackageReference Include="MSTest.TestAdapter" Version="2.1.1" />    
    <PackageReference Include="MSTest.TestFramework" Version="2.1.1" />    
    <PackageReference Include="coverlet.collector" Version="1.3.0" />  
  </ItemGroup>
</Project>

También deberemos actualizar la referencia Microsoft.Net.Test.SDK. Build y todo listo.

Conclusión

En este post vimos como de una manera rápida y fácil pudimos transformar nuestras aplicaciones en .Net Core 3.1 a Net 5. Por favor, tengamos en cuenta que esto es una versión preliminar, de ninguna manera debemos poner estas versiones en entornos productivos. Si es recomendable, ir probando la migración de nuestras aplicaciones actuales a las nuevas versiones de .Net. En próximos posts seguiremos viendo las novedades que nos brinda las nuevas versiones de .net 5.

Fernando Sonego

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *