Actualización de una aplicación web API de .NET Core 2.2 a .NET Core 3.1

Introducción

En este artículo, lo guiaré a través de la actualización de una aplicación de web API de .NET Core 2.2 existente a .NET Core 3.1.

En el proceso saldrán errores de código los cuales se irán solventando a medida que se realicen los ajustes.

Prerrequisitos

Visual Studio 2019 y .NET Core 3.x

Actualizar plataforma de destino desde .Net Core 2.2 a 3.1

Ir a las propiedades del proyecto y cambiar Plataforma de destino:

O puede buscar la etiqueta <TargetFramework> en el archivo .csproj y cambiar su valor a “netcoreapp3.1” como se muestra a continuación:

Eliminar las referencias del paquete NuGet que se han eliminado y movido a la biblioteca compartida

Elimine “Microsoft.AspNetCore.App” de las dependencias de su proyecto o del archivo .csproj

<PackageReference Include=”Microsoft.AspNetCore.App” />

Elimine “Microsoft.AspNetCore.App.Razor.Design” de las dependencias de su proyecto o del archivo .csproj

<PackageReference Include=”Microsoft.AspNetCore.Razor.Design” Version=”2.2.0" />

limpiar solución y recompilar

Actualizar las referencias del paquete NuGet (si corresponde, ya sea en el archivo .csproj o directamente en las dependencias de su proyecto)

Authentication JwtBearer

<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.0" />

Micrisoft.Extensions.Configuration

<PackageReference Include="Microsoft.Extensions.Configuration" Version="3.1.0" />

Micrisoft.Extensions.Configuration.EnviromentVariables

<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="3.1.0" />

Microsoft.Extensions.Configuration.Json

<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.0" />

Microsoft.Extensions.Options

<PackageReference Include="Microsoft.Extensions.Options" Version="3.1.0" />

Microsoft.VisualStudio.Web.CodeGenerators.Mvc

<PackageReference Include="Microsoft.VisualStudio.Web.CodeGenerators.Mvc" Version="3.1.0" />

Swagger

<PackageReference Include=”Swashbuckle.AspNetCore” Version=”5.5.1" />

Modificar el método ConfigureServices de Startup.cs

Reemplace AddMvc con AddControllers

cambiar:

services.AddMvc(options =>

a:

services.AddControllers(options =>

Reemplace la versión de compatibilidad de .Net Core MVC de 2.a 3.0 en SetCompatibilityVersion

cambiar:

.SetCompatibilityVersion(CompatibilityVersion.Version_2_0);

a:

.SetCompatibilityVersion(CompatibilityVersion.Version_3_0);

Reemplace AddJsonOptions con AddNewtonsoftJson

cambiar:

.AddJsonOptions(options => options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore)

a

.AddNewtonsoftJson(options => options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore)

Modificar el método Configure de Startup.cs

Reemplazar, IHostingEnvironment con IWebHostEnvironment.

cambiar:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)

a

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)

Reemplace app.UseMvc () con EndPoint Routing, como se muestra a continuación:

cambiar

app.UseMvc();

a:

app.UseRouting();
app.UseEndpoints(endpoints => {
endpoints.MapDefaultControllerRoute();
endpoints.MapControllerRoute("default", 
"{controller=Home}/{action=Index}/{id?}");
});

si usas el método IsDevelopment() debes agregar la referencia a Microsoft.Extensions.Hosting

using Microsoft.Extensions.Hosting;

conclusiones

Los ajustes anteriores únicamente cubren las configuraciones básicas de una WEB API en ASP.NET Core, en mi opinión es un proceso sencillo, espero que te esta guía te sea útil tanto como para mí lo fue.

Por último te agradezco por leer este artículo y espero que puedas apoyarme

paypal

buymeacoffee

github

twitter