En las últimas días, el equipo de Microsoft .NET ha lanzado .NET 5 Preview 1, tal como estaba programado. Es una noticia emocionante, ya que .NET Core y .NET Framework finalmente se unifican, y también genera grandes expectativas sobre las nuevas características que .NET 5 nos traerá.
Retrocedamos en el tiempo a 2019...
I. Primera mirada a .NET 5 en 2019
En 2019, Richard dio un adelanto de .NET 5 en https://devblogs.microsoft.com/dotnet/introducing-net-5/. En este artículo, repasemos los puntos clave:
1. Plataforma unificada: .NET 5 = .NET Core vNext
Después de .NET Core 3.x, la evolución será hacia .NET 5, creando una plataforma unificada.
Se omitió .NET Core 4 para evitar confusiones con las versiones de .NET Framework 4.., por lo que se saltó directamente a .NET 5.
El nombre ".NET 5" elimina ".NET Core" para unificar la nomenclatura de .NET, con el objetivo de tener solo un ".NET".
Se busca unificar el runtime y el framework, permitiendo que el framework se ejecute en cualquier lugar con comportamiento y experiencia de desarrollo consistentes.
Se aprovecharán .NET Core, .NET Framework, Mono y Xamarin para expandir las capacidades de .NET.
Se unificará la base de código única, manteniendo y desarrollando conjuntamente el equipo de desarrollo de Microsoft .NET y la comunidad.
2. Posicionamiento multiplataforma y multiescenario
.NET 5 está diseñado para Windows, Linux, macOS, iOS, Android, tvOS, watchOS y WebAssembly.
3. Nuevas características de .NET 5
La interoperabilidad con Java estará disponible en todas las plataformas.
Se habilitará la interoperabilidad con Objective-C y Swift en múltiples sistemas operativos.
CoreFX se expandirá para admitir la compilación estática (ahead-of-time - AOT) de .NET, menor huella de memoria y soporte para más sistemas operativos.
4. Mayor rendimiento y productividad
5. Inicio más rápido, tamaño reducido y menor uso de memoria
II. Lanzamiento de .NET 5 Preview 1 el 16 de marzo de 2020
Recientemente, el 16 de marzo, Scott Hunter anunció en su blog el lanzamiento de la primera versión preliminar de .NET 5 Preview 1.
https://devblogs.microsoft.com/dotnet/announcing-net-5-0-preview-1/
En su publicación, Scott Hunter dijo: ".NET Core 3 se ha convertido en la versión más rápida de .NET en adopción, y hemos ganado otro millón de usuarios solo en el último año."
Esta cifra demuestra la fuerte atracción de .NET Core. Además, .NET Core 3.1 es una versión LTS, y muchas empresas, incluyendo nuestra compañía, ya han actualizado a .NET Core 3.1.
Al escribir esto, combinado con los adelantos de 2019, nuestras expectativas para .NET 5 son muy altas. Sin embargo, con el recién lanzado .NET 5 Preview 1, debemos mantener la calma. ¿Por qué?
- Es la primera versión preliminar
- La versión GA generalmente disponible se lanzará en noviembre de 2020
- Las nuevas características en Preview 1 son limitadas
A continuación, analizamos en detalle las nuevas características de .NET 5 Preview 1:
1. Instalación y despliegue
- SDK de .NET 5.0 Preview 1
- Runtime de .NET 5.0 Preview 1
2. Actualización de proyectos existentes
<MarcoDestino>net5.0</MarcoDestino>
Para proyectos de ASP.NET Core:
- Actualizar todas las referencias de paquetes Microsoft.AspNetCore.* a
5.0.0-preview.1.20124.5. - Actualizar todas las referencias de paquetes Microsoft.Extensions.* a
5.0.0-preview.1.20120.4.
3. Actualizaciones de ASP.NET Core 5.0
Parece que solo se han corregido y mejorado algunos puntos funcionales y algunos errores...
https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-5-preview-1/
<strong>ASP.NET Core en .NET 5 Preview 1 aún no incluye </strong>ninguna característica importante<strong>, pero sí incluye numerosas correcciones de errores menores. </strong>
4. Mejora en el rendimiento de expresiones regulares
Según lo oficial: en muchas expresiones que hemos probado, estas mejoras generalmente pueden aumentar el rendimiento en 3-6 veces, y en algunos casos incluso más.
5. Mejora en la calidad del código en RyuJIT
Según lo oficial: cada versión incluye una serie de mejoras de rendimiento en el código generado por JIT. Llamamos a este tipo de mejoras "CQ" o calidad del código.
6. Diagnóstico de carga de ensamblaje agregado al pipe de eventos
Se ha agregado información de carga de ensamblaje al pipe de eventos. Esto facilita el diagnóstico y análisis de la carga de ensamblajes (similar a la parte Fusion Log Viewer usada con .NET Framework). Se puede recopilar esta información mediante dotnet-trace con el siguiente comando:
dotnet-trace collect --providers Microsoft-Windows-DotNETRuntime:4:4 --process-id [ID del proceso]
7. API de programación del profiler del pipe de eventos
El pipe de eventos es un nuevo subsistema y API añadido en .NET Core 2.2 que permite realizar investigaciones de rendimiento y otros diagnósticos en cualquier sistema operativo. En .NET 5.0, el pipe de eventos se ha extendido para permitir que los profiler escriban eventos en el pipe de eventos.
Esto es similar a la funcionalidad de escribir eventos en el visor de eventos de .NET Framework. Por ejemplo, se puede usar para registrar información sobre el inicio, cierre o caídas del programa, facilitando el seguimiento y análisis de problemas.
8. Consolidación de repositorios de GitHub
En .NET 5, se ha reducido el número de repositorios de GitHub utilizados para construir y empaquetar .NET. ¡El código se ha unificado!
dotnet/runtime (anteriormente dotnet/corefx, dotnet/coreclr y dotnet/core-setup) dotnet/aspnetcore (había múltiples repositorios en la organización aspnet) dotnet/sdk (anteriormente dotnet/sdk, dotnet/cli)
9. Sin embargo, no incluye algunos objetivos avanzados de .NET 5 (no se detallarán aquí, esperando a las versiones preliminares posteriores)
Tras este análisis, para .NET 5 Preview 1, no hay que tener expectativas demasiado altas, ya que es solo la primera versión preliminar. Se puede entender como una consolidación del código existente, corrección de algunos errores y establecimiento de una base para .NET 5.
Podemos seguir esperando y anticipando los lanzamientos de las próximas versiones preliminares y la versión GA.
Este es el análisis profundo y seguimiento de .NET 5 Preview 1. Compartido con todos ustedes.