Estas son las novedades en .Net Core 3.0

Recientemente se ha publicado la version 3.0 de .Net Core en su fase preview 2. En este artículo vamos a resumir las principales novedades que incluyen esta nueva versión:

.NET Standard 2.1

.NET Core 3.0 también implementa .NET Standard 2.1.

Escritorio de Windows

  • Quizá una de las novedades mas importantes es que, en esta nueva versión, se pueden compilar aplicaciones de escritorio de Windows con WPF y Windows Forms. Hay que decir también que este componente solo se admite en Windows.
  • El componente de escritorio de Windows forma parte del SDK de .Net Core 3.0.
  • De esta forma, se pueden crear proyectos nuevos de escritorio con los comandos dotnet new wpf o dotnet new winforms.
  • Posibilita crear, abrir o depurar uno de estos proyectos desde Visual Studio directamente (se aconseja desde Visual Studio 2019 preview).

Criptografía

También se ha añadido compatibilidad con los cifrados AES-GCM y AES-CCM, que son implementados en las librerías System.Security.Cryptography.AesGcm y System.Security.Cryptography.AesCcm.

Importación y exportación de claves criptográfica

Se permite la importación y exportación de claves asimétricas publicas y privadas en los formatos estándar sin tener que usar el X.509.

SerialPort para Linux

  • .NET Core 3.0 admite System.IO.Ports.SerialPort en Linux.
  • En versiones anteriores, .NET Core solo admitía el uso del tipo SerialPort en Windows.
  • Además, se incluye compatibilidad con ARM64 para Linux.

TLS 1.3 y OpenSSL 1.1.1 en Linux

Desde esta versión, .Net Core 3.0 usara compatibilidad con TLS 1.3 y OpenSSL 1.1.1 cuando este disponible en el entorno.

TLS 1.3 aporta las siguientes mejoras:

  • Se reducen los recorridos de ida y vuelta entre servidor y cliente, lo que supone un menor tiempo de conexión.
  • Se eliminan algoritmos criptográficos antiguos y obsoletos y hay un mayor cifrado del protocolo de conexión, con lo que se mejora la seguridad.

Flujos asincrónicos

Hay una nueva versión asíncrona del tipo IEnumerable, llamado IAsyncEnumerable. Se permite ejecutar la instrucción await foreach para consumir los elementos y la instrucción yield return para generar elementos.

Compatibilidad con JSON integrada con rápido rendimiento

Existe un lector de solo avance, de baja asignación y de alto rendimiento para texto JSON con codificación UTF-8 en System.Text.Json.Utf8JsonReader desde ReadOnlySpan.  Utf8JsonReader es un tipo fundamental a bajo nivel con el que poder analizar y deserializar de una forma personalizada. Como dato, es el doble de rápido que un lector de Json.Net.

Rangos e índices

Hay dos nuevos tipos: Index y Range.

  • Index se usa para indizar, pudiendo crear índices desde un tipo int.
  • El tipo Range consta de dos valores Index, uno para el inicio y otro para el final, que se puede escribir con una expresión de tipo rango x…y.

Tipo: SequenceReader

System.Buffers.SequenceReader se puede usar como lector de ReadOnlySequence, con el que poder hacer análisis de rendimiento.

Tipo: MetadataLoadContext

Se ha agregado este nuevo tipo, con el que se pueden leer datos de ensamblado. De esta forma, se pueden leer los ensamblados como datos, incluso los ensamblados que están compilados y tienes arquitecturas en diferentes plataformas.

Si quieres conocer las últimas novedades en las tecnologías Microsoft, ¡consulta nuestro blog donde te contamos todas sus claves!