Novedades de .NET 5

.NET 5 es la próxima versión principal de .NET Core, que sigue a la 3.1. Esta versión nueva se denomina .NET 5 en lugar de .NET Core 4 por dos motivos:

  • Hemos omitido los números de versión 4.x para evitar confusiones con .NET Framework 4.x.
  • Hemos eliminado "Core" del nombre para resaltar que esta es la implementación principal de .NET en el futuro. .NET 5 admite más tipos de aplicaciones y más plataformas que .NET Core o .NET Framework.

ASP.NET Core 5.0 se basa en .NET 5, pero conserva el nombre "Core" para evitar la confusión con ASP.NET MVC 5. Del mismo modo, Entity Framework Core 5.0 conserva el nombre "Core" para evitar la confusión con Entity Framework 5 y 6.

.NET 5 incluye las mejoras siguientes y características nuevas en comparación con .NET Core 3.1:

.NET 5 no reemplaza a .NET Framework

.NET 5 y versiones posteriores son la implementación principal de .NET en el futuro, pero .NET Framework 4.x sigue siendo compatible. No hay ningún plan para migrar las siguientes tecnologías de .NET Framework a .NET 5, pero hay alternativas en .NET:

Technology Alternativa recomendada
formularios Web Forms ASP.NET Core Blazor o Razor Pages
Windows Workflow (WF) Elsa-Workflows

Windows Communication Foundation

La implementación original de Windows Communication Foundation (WCF) solo se admitía en Windows. Pero hay un puerto de cliente disponible en .NET Foundation. Es de código abierto, multiplataforma y compatible con Microsoft en su totalidad. Los paquetes NuGet principales se muestran a continuación:

Los componentes de servidor que complementan las bibliotecas de cliente mencionadas anteriormente están disponibles mediante CoreWCF. A partir de abril de 2022, Microsoft admite CoreWCF oficialmente. Como alternativa a WCF, puede usar gRPC.

.NET 5 no reemplaza a .NET Standard

El desarrollo de aplicaciones nuevo puede especificar el moniker de la plataforma de destino (TFM) net5.0 para todos los tipos de proyecto, incluidas las bibliotecas de clases. El uso compartido de código entre cargas de trabajo de .NET 5 se simplifica: todo lo que necesita es el TFM net5.0.

En el caso de las aplicaciones y bibliotecas de .NET 5, el TFM net5.0 combina y reemplaza los TFM netcoreapp y netstandard. Pero si tiene previsto compartir código entre cargas de trabajo de .NET Framework, .NET Core y .NET 5, puede hacerlo especificando netstandard2.0 como TFM. Para más información, consulte .NET Standard.

Actualizaciones de C#

Los desarrolladores que escriben aplicaciones de .NET 5 tendrán acceso a la versión y características más recientes de C#. .NET 5 está emparejado con C# 9, que aporta muchas características nuevas al lenguaje. Estos son algunos aspectos destacados:

  • Registros: tipos de referencia con semántica de igualdad basada en valores y mutación no destructiva que admite una expresión with nueva.

  • Coincidencia de patrones relacionales: amplía las capacidades de coincidencia de patrones a los operadores relacionales para las evaluaciones comparativas y expresiones, incluidos los patrones lógicos: nuevas palabras clave and, or y not.

  • Instrucciones de nivel superior: como medio para acelerar la adopción y el aprendizaje de C#, se puede omitir el método Main y la aplicación, tan sencilla como el ejemplo siguiente, es válida:

    System.Console.Write("Hello world!");
    
  • Punteros de función: construcciones de lenguaje que exponen los siguientes códigos de operación de lenguaje intermedio (IL): ldftn y calli.

Para obtener más información sobre las características disponibles de C# 9, vea Novedades de C# 9.

Generadores de origen

Además de algunas de las nuevas características de C# resaltadas, los generadores de origen se están incorporando a los proyectos de desarrolladores. Los generadores de origen permiten que el código que se ejecuta durante la compilación inspeccione el programa y produzca archivos adicionales que se compilan junto con el resto del código.

Para obtener más información sobre los generadores de origen, vea Introducción a los generadores de origen de C# y Ejemplos de generadores de origen de C#.

Actualizaciones de F#

F# es el lenguaje de programación funcional de .NET y, con .NET 5, los desarrolladores tienen acceso a F# 5. Una de las características nuevas son las cadenas interpoladas, que son similares a las cadenas interpoladas en C# e incluso en JavaScript.

let name = "David"
let age = 36
let message = $"{name} is {age} years old."

Además de la interpolación de cadenas básica, también está la interpolación con tipo. Gracias a la interpolación con tipo, un tipo determinado debe coincidir con el especificador de formato.

let name = "David"
let age = 36
let message = $"%s{name} is %d{age} years old."

Este formato es similar a la función sprintf que aplica formato a una cadena basada en entradas con seguridad de tipos.

Para obtener más información, vea Novedades de F# 5.

Actualizaciones de Visual Basic

No hay características de lenguaje nuevas para Visual Basic en .NET 5. Pero con .NET 5, la compatibilidad con Visual Basic se amplía a lo siguiente:

Descripción Parámetro dotnet new
Aplicación de consola console
Biblioteca de clases classlib
Aplicación WPF wpf
Biblioteca de clases de WPF wpflib
Biblioteca de controles personalizados WPF wpfcustomcontrollib
Biblioteca de controles de usuario de WPF wpfusercontrollib
Aplicación de Windows Forms (WinForms) winforms
Biblioteca de clases de Windows Forms (WinForms) winformslib
Proyecto de prueba unitaria mstest
Proyecto de prueba de NUnit 3 nunit
Elemento de prueba de NUnit 3 nunit-test
Proyecto de prueba de xUnit xunit

Para obtener más información sobre las plantillas de proyecto de la CLI de .NET, vea dotnet new.

Características nuevas de System.Text.Json

Hay características nuevas en y para System.Text.Json:

Vea también