Jorge Serrano
  • Home

.NET 5 lanzado oficialmente – detalles y consideraciones

  • By jorge
  • Nov-12-2020
  • .NET 5, ASP.NET Core 5, C# 9.0, Entity Framework Core 5, Visual Studio 2019, Visual Studio 2019 for Mac
  • 0 Comments.

Introducción

Antes de empezar y para los que menos familiarizados estén, cabe destacar que de .NET Core 3.1 pegamos el salto a .NET 5.

Es decir, no existe ni existirá .NET Core 4 que sería su nombre «lógico» esperable, y pasa a llamarse directamente .NET 5.

Los motivos fundamentales para este cambio de nombre son dos.

Por un lado, ya existe como sabrás, .NET Framework 4, así que nombrar a la nueva versión como .NET Core 4 podría acarrear malos entendidos.

Por otro lado, se elimina la palabra Core por el planteamiento que hay detrás de .NET 5 y versiones posteriores (planeándose una versión por año aproximadamente) y que soportarán muchos tipos de aplicaciones.

Pero aquí conviene destacar una cosa más, y es que con la incursión de .NET 5, ASP.NET se denomina ASP.NET Core 5. Está basada en .NET 5 pero mantiene la palabra Core con el fin de evitar la confusión con ASP.NET MVC 5 que ya existe.

Y exactamente ocurre con Entity Framework Core 5, que mantiene la palabra Core para, por el mismo motivo, evitar la confusión con Entity Framework 5 y Entity Framework 6, que también existen.

Por lo tanto, el resumen es que esta nueva versión tiene estas partes fundamentales:

  • .NET 5
  • ASP.NET Core 5
  • Entity Framework Core 5

 

.NET 5 versión final, lanzado oficialmente

El lanzamiento de .NET 5 ha tenido lugar el pasado 10 de Noviembre.

Microsoft ha organizado para la ocasión, un evento online entre los días 10, 11 y 12 de Noviembre.

¿Y que podemos decir de .NET 5?. Todos los detalles de esta nueva versión, los podrás encontrar en este otro enlace.

Y si lo que quieres es empezar a utilizar .NET 5, podrás descargar esta nueva versión desde este enlace.

Respecto al roadmap de Microsoft, se planea como mencionaba anteriormente, una versión anual.

El roadmap que Microsoft anunció hace unos años cuando comenzaron a abordar .NET 5 era el siguiente (que como verás, no ha cambiado nada y se está cumpliendo a rajatabla).

 

¿Y qué trae de nuevo .NET 5?

Para saber qué trae de nuevo, te sugiero visitar este enlace donde se detalla todo al máximo.

Algunas de esas mejoras:

Se han realizado múltiples mejoras en C#, F# y Visual Basic.

También se han realizado mejoras respecto al namespace System.Text.Json, aunque quedan pendientes mejoras que se implementarán en .NET 6.

También se incluyen características como Single file apps o App trimming.

Y así, podríamos estar citando más y más mejoras.

Pero me gustaría destacar una en particular que tiene que ver con el esfuerzo que desde Microsoft se está realizando respecto a la mejora de rendimiento.

Según Microsoft, en .NET 5 se ha mejorado por ejemplo, el tratamiento de texto plano o Plaintext en un 38% y JSON en un 42%. Algo que puedes consultar en este enlace de Twitter.

 

C# 9.0

En lo que a mejoras del lenguaje C# se refiere, Microsoft ha creado la la especificación C# 9.0 que ha sido incluida en .NET 5.

Sobre esta especificación he escrito algunas entradas hace un par de meses que te recomiendo visitar si tienes curiosidad por las novedades introducidas en el lenguaje.

Podrás acceder a esta información desde este enlace principal sobre la especificación de C# 9.0.

 

F# 5

F# 5 forma parte de .NET 5 también, y se ha sido igualmente anunciado en la presentación de .NET 5.

Son múltiples las mejoras también, y para ello, te invito a visitar la información oficial de su anuncio en este enlace.

 

Visual Basic

No existe ninguna nueva característica aplicada a Visual Basic en .NET 5.

Sin embargo, el soporte de Visual Basic sí ha sido extendido en .NET 5.

Ahora podemos trabajar con aplicaciones de consola, librerías de clases, aplicaciones y librerías de WCF, controles de usuario de WCF, aplicaciones Windows, y tests unitarios con mstest, nunit y xunit.

 

ASP.NET Core 5.0

ASP.NET Core 5.0 es la nueva versión de ASP.NET Core alineada con .NET 5.

Se han agregado múltiples mejoras y características, incluyendo el soporte a records de C# 9.0.

También se han realizado soporte y mejoras en lo que corresponde a Blazor Server y Blazor WebAssembly, o SignalR.

Hablar de ASP.NET Core 5.0 nos obliga a hablar de gRPC también, en el que se ha mejorado considerablemente el rendimiento de gRPC y HTTP/2.

Y como no, otra de las importantes mejoras, tiene que ver con el rendimiento, el cuál ha sido mejorado de forma considerable.

Podrás acceder a la información del anuncio oficial de esta versión en este enlace.

Y si quieres más detalle, te invito a visitar este otro enlace.

 

Entity Framework Core 5.0

Entity Framework Core 5.0 es la nueva versión de Entity Framework alineada con .NET 5.

Esta nueva versión trae una gran cantidad de mejoras como:

many-to-many relationship mapping
Many-to-many relationship mapping
Table-per-type inheritance mapping
IndexAttribute to map indexes without the fluent API
Database collations
Filtered Include
Simple logging
Exclude tables from migrations
Split queries for related collections
Event counters
SaveChanges interception and events
Required 1:1 dependents
Migrations scripts with transactions
Rebuild SQLite tables as needed in migrations
Mapping for table-valued functions
DbContextFactory support for dependency injection
ChangeTracker.Clear to stop tracking all entities
Improved Cosmos configuration
Change-tracking proxies
Property bags

Se ha hecho hincapié en la resolución bugs y mejoras globales.

Podrás acceder a la información del anuncio oficial de esta versión en este enlace.

 

Visual Studio 2019 actualizado a 16.8.0

El lanzamiento de .NET 5 lleva consigo el lanzamiento de una nueva versión de Visual Studio 2019, por lo que pasamos de la anterior versión 16.7.8 publicada el mismo 10 de Noviembre, a la versión 16.8.0.

Son múltiples y muy variadas esas actualizaciones.

La más destacable es el soporte de .NET 5 como es obvio.

Podrás acceder a las anotaciones sobre esta nueva versión en este enlace.

 

Visual Studio 2019 for Mac actualizado a 8.8 (8.8.0.2913)

Al igual que Visual Studio 2019 para Windows, en el caso de Mac ocurre exactamente lo mismo.

El lanzamiento de .NET 5 lleva consigo el lanzamiento de una nueva versión de Visual Studio 2019 for Mac también. En este caso, la versión 8.8.

Podrás acceder a las anotaciones sobre esta nueva versión en este enlace.

 

Migración de ASP.NET Core 3.1 a ASP.NET Core 5

Microsoft ha elaborado un artículo sobre cómo actualizar o migrar tu proyecto de ASP.NET Core 3.1 a ASP.NET Core 5.

Este artículo puede ser consultado en este enlace y es altamente recomendable echarle un vistazo antes de comenzar a migrar tus aplicaciones de ASP.NET Core 3.1 a 5.0.

Tampoco debes dejar de lado todo lo relativo a los breaking changes de pasar de ASP.NET Core 3.1 a ASP.NET Core 5.0. Para ello, te recomiendo visitar este otro enlace.

 

.NET Standard y .NET 5

.NET Standard fue creado pensando en la unificación de las características del BCL (base class library) y escribir la librería en una librería concreta, pudiendo ejecutarla en cualquier sitio.

Tanto es así, que según Microsoft, el 77% de los 1000 paquetes más usados, soportan .NET Standard, y en NuGet.org, su adopción en los últimos 6 meses, ha sido de un 58%.

Pero hablando de .NET 5 en concreto, cabe destacar que .NET 5 no reemplaza a .NET Standard.

Sin embargo, si queremos trabajar con .NET Core 3.1 y .NET 5 al mismo tiempo, deberemos tener en cuenta trabajar con .NET Standard 2.1.

.NET Standard 2.1 será la última versión de .NET Standard, y .NET 5 y todas las futuras versiones de .NET continuarán soportando .NET Standard 2.1 y anteriores.

Para más información, te recomiendo visitar este enlace o este otro con algún detalle adicional e interesante.

 

¿Cómo podemos programar en .NET 5?

Además de Visual Studio 2019 en su última versión, también podemos descargar y usar Visual Studio Code.

En el caso de querer utilizar Visual Studio Code, nos podemos apoyar incluso en alguna extensión que nos facilite la tarea de desarrollo, como por ejemplo C# Snippets, la cuál he actualizado para soportar algunas de las características de C# 9.

Si somos un poco más frikis, podemos hacer uso de la línea de comandos directamente.

De todos los modos, te dejo este artículo que escribí hace algunas fechas de cómo probar .NET 5 por si te sirve.

 

Lo que puedes echar en falta…

Aunque hemos contado casi todo, cosas buenas, lo que nadie quiere normalmente contar son las malas noticias o aquellas cosas o aspectos que no son tan positivos.

Ante esto, es conveniente comentarlo pero con pinzas, porque ni todo es blanco ni todo es negro, y a veces, hay grises.

Me explico.

Existen tecnologías dentro de .NET Framework 4 que no están ni van a estar en .NET 5 por parte de Microsoft.

De esta forma, no existen planes para migrar las siguientes tecnologías:

  • Web Forms
  • WCF – Windows Communication Foundation
  • WF – Windows Workflow

Sin embargo, todas ellas están más o menos cubiertas por nuevas tecnologías, de esta manera:

  • Web Forms estará cubierto por ASP.NET Core Blazor o Razor Pages
  • WCF estará cubierto por gRPC
  • WF estará cubierto por un proyecto open-source llamado CoreWF

 

.NET is open-source

Casi para terminar, comentar que .NET es open-source, es decir, se nutre de muchísimas aportaciones a nivel general y particular.

Desde sugerencias y feedback, bugs, soluciones a problemas, etc., hasta documentación, traducción de términos, etc.

Es por eso que Microsoft ha creado una página web en Azure en la que agradece a un montón de personas sus contribuciones.

Como curiosidad, puedes acceder a esta información en este enlace.

Como añadido, el código de la página web anterior, es accesible en este otro enlace.

 

Algunas recomendaciones personales

A modo de conclusión y para repasar alguna cosa más que considero importante…

En marzo de 2020 escribía una entrada en mi blog hablando sobre el fin de soporte de .NET 3.

Antes de entrar en detalle, recordemos qué significa LTS o long-term support.

Se trata de la denominación que da Microsoft para otorgar a los productos, 3 años de soporte después de su lanzamiento.

Actualmente tenemos .NET Core 3.1 como LTS, y por otro lado, Microsoft ha publicado el pasado día 10 .NET 5 (pero no como LTS), y en Noviembre de 2021, Microsoft publicará .NET 6 como LTS.

Puede parecer un poco lioso la verdad, pero si lo pensamos detenidamente y miramos la imagen del roadmap que ponía al principio de esta entrada, queda todo muy claro.

Así que aquí la pregunta sería… ¿y qué hacemos o qué es más recomendable?.

Pues lo cierto es que dependerá.

A no ser que sea necesario por diferentes motivos (estratégicos, presupuesto, comercial, etc), consideraría migrar a .NET Core 3.1 sino lo has hecho ya, y luego dar el salto a .NET 6 el año próximo.

Ten en cuenta que el soporte de .NET Core 3.1 finalizará el 3 de Diciembre de 2022, así que tendremos tiempo suficiente para migrar a .NET 6.

Pero, ¿pasa algo malo si migro ya a .NET 5?

Para nada.

.NET 5 es estable y robusto, pero ten en cuenta que el soporte de .NET 5 finalizará a los tres meses de aparecer .NET 6.

Así que si te compensa el esfuerzo de migrar ya a .NET 5, y luego a .NET 6, puedes hacerlo sin problemas, pero sino, puedes esperar a hacerlo a .NET 6 más adelante.

Para saber más sobre LTS, te sugiero visitar este enlace en el que ya aparece .NET 5.

El caso es que la implicación de LTS es a veces más profunda de lo que se cree.

Normalmente, AWS (Amazon Web Services) no da soporte a versiones que no sean LTS, y en el caso de Azure Functions, mejor poneros una captura del tweet de Anthony Chu (PM de Azure Functions) para que entendáis las implicaciones que pueden acarrear.

 

Espero que todo esto te haya resultado útil.

Happy Coding!

Comments

Deja un comentario Cancelar respuesta

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

← Previous Post Next Post →

Jorge Serrano

MVP Reconnect


¡Subscríbete a mi canal!
YouTube

Donaciones
Donation

Entradas recientes

  • Go – Arrays
  • Go – Operators
  • Go – Constants
  • Go – Tipos de Datos
  • Go – Variables
  • Hello Go-rld!
  • Introducción a Go o Golang
  • JSON Patch en ASP.NET Core 5 Web API
  • Null Checking en C#
  • ¿Porqué mi página web por defecto de ASP.NET Core no se vé en mi Azure Web App y me da un 404?

Categorías

  • .NET 5
  • .NET Core
  • .NET Core 3.0
  • .NET Core 3.1
  • .NET Framework 2.0
  • .NET Framework 3.0
  • .NET Framework 3.5
  • .NET Framework 4.0
  • .NET Framework 4.5
  • .NET Framework 4.6
  • .NET Framework 4.7
  • .NET Framework 4.8
  • .NET Standard 2.0
  • .NET Standard 2.1
  • AMQP
  • Android
  • Angular
  • API REST
  • Apple
  • Apple iOS
  • Apple macOs
  • Arquitectura
  • ASP.NET
  • ASP.NET Core
  • ASP.NET Core 3
  • ASP.NET Core 5
  • AWS
  • Azure App Service
  • Azure Application Insights
  • Azure Cosmos DB
  • Azure Database Migration Service
  • Azure Databricks
  • Azure DevOps
  • Azure Event Grid
  • Azure Functions
  • Azure IoT
  • Azure Portal
  • Azure PowerShell
  • Azure Queue Storage
  • Azure SQL
  • Azure Storage
  • Azure Virtual Datacenter
  • Azure WebApps
  • Big Data
  • Bing
  • Blazor
  • Blog
  • Bots
  • C#
  • C# 7.0
  • C# 7.1
  • C# 7.2
  • C# 7.3
  • C# 8.0
  • C# 9.0
  • Channel 9
  • Codeplex
  • Codespaces
  • Containers
  • Debugging
  • DevOps
  • Docker
  • Electron
  • Entity Framework
  • Entity Framework Core
  • Entity Framework Core 3.0
  • Entity Framework Core 5
  • Eventos
  • F#
  • FaaS
  • FeatureFlags
  • FeatureToggles
  • Feeds
  • Fluent Assertions
  • General
  • GIMP
  • Git
  • GitHub
  • Go
  • Google
  • Google Analytics
  • Gradle
  • gRPC
  • GSA
  • Historia de la Informática
  • HoloLens
  • HtmlAgilityPack
  • IdentityServer4
  • Inkscape
  • Ionic
  • iOS
  • IoT
  • Java
  • JavaScript
  • JDBC
  • JSON
  • Kubernetes
  • Lenguajes de Programación
  • Libros y Cursos
  • LINQ
  • Linux
  • LiteDB
  • Machine Learning
  • macOS
  • Microservices
  • Microsoft
  • Microsoft .NET Framework 4.5
  • Microsoft 365
  • Microsoft Azure
  • Microsoft Build
  • Microsoft Ignite
  • Microsoft Learn
  • Microsoft Orleans
  • Microsoft Surface Go
  • Microsoft Teams
  • ML.NET
  • MQTT
  • MRO
  • MS-DOS
  • MsCoders Madrid
  • MVP
  • NancyFx
  • Node.js
  • NoSQL
  • NuGet
  • NUnit
  • OData
  • ODP.NET Core
  • Office 2007
  • Office 2010
  • Office 2013
  • Office 2016
  • Office 2019
  • Office 365
  • Open Source
  • Open XML SDK
  • Opinión
  • Orchard CMS
  • OT
  • PaaS
  • Patterns
  • PdfSharpCore
  • Performance
  • PHP
  • Postman
  • Power BI
  • PowerShell
  • PowerShell Core
  • Productividad
  • Project Server 2019
  • R
  • Rendimiento
  • Scala
  • Scraper
  • Security
  • Serverless
  • Service Fabric
  • SharePoint Server 2019
  • SignalR
  • Sin categoría
  • Sistemas Distribuidos
  • Skype
  • Skype for Business Server 2019
  • Small Basic Online
  • SQL Server 2005
  • SQL Server 2008
  • SQL Server 2012
  • SQL Server 2014
  • SQL Server 2016
  • SQL Server 2017
  • SQL Server 2019
  • STOMP
  • Swagger
  • Testing
  • TFS 2017
  • TFS 2018
  • Tools
  • TypeScript
  • Unity
  • UWP
  • UX
  • Visio
  • Visual Basic
  • Visual Studio 2010
  • Visual Studio 2012
  • Visual Studio 2013
  • Visual Studio 2015
  • Visual Studio 2017
  • Visual Studio 2017 for Mac
  • Visual Studio 2019
  • Visual Studio 2019 for Mac
  • Visual Studio App Center
  • Visual Studio Code
  • Visual Studio IntelliCode
  • Visual Studio Live Share
  • Visual Studio Live Share Audio
  • Visual Studio Online
  • VS Anywhere
  • Vue.js
  • Web API
  • WebAssembly
  • WinDbg
  • Windows
  • Windows 10
  • Windows Compatibility Pack
  • Windows Phone 10
  • Windows Phone 7
  • Windows Phone 8
  • Windows Server 2008
  • Windows Server 2012
  • Windows Server 2016
  • Windows Server 2019
  • Windows Service
  • WinForms
  • WinUI
  • WPF
  • Xamarin
  • Xbox
  • Xcode
  • Xiaomi Mi Band 2
  • xUnit
  • YAML

Archivos

  • enero 2021
  • diciembre 2020
  • noviembre 2020
  • octubre 2020
  • septiembre 2020
  • agosto 2020
  • julio 2020
  • junio 2020
  • mayo 2020
  • abril 2020
  • marzo 2020
  • febrero 2020
  • enero 2020
  • diciembre 2019
  • noviembre 2019
  • octubre 2019
  • septiembre 2019
  • agosto 2019
  • julio 2019
  • junio 2019
  • mayo 2019
  • abril 2019
  • marzo 2019
  • febrero 2019
  • enero 2019
  • diciembre 2018
  • noviembre 2018
  • octubre 2018
  • septiembre 2018
  • agosto 2018
  • julio 2018
  • junio 2018
  • mayo 2018
  • abril 2018
  • marzo 2018
  • febrero 2018
  • enero 2018
  • diciembre 2017
  • noviembre 2017
  • octubre 2017
  • septiembre 2017
  • agosto 2017
  • julio 2017
  • junio 2017
  • febrero 2015
  • octubre 2014
  • junio 2014
  • marzo 2014
  • febrero 2014
  • enero 2014
  • diciembre 2013
  • septiembre 2013
  • agosto 2013
  • julio 2013
  • junio 2013
  • abril 2013
  • febrero 2013
  • enero 2013
  • diciembre 2012
  • noviembre 2012
  • septiembre 2012
  • agosto 2012
  • junio 2012
  • mayo 2012
  • abril 2012
  • marzo 2012
  • febrero 2012
  • enero 2012
  • diciembre 2011
  • noviembre 2011
  • octubre 2011
  • septiembre 2011
  • agosto 2011
  • julio 2011
  • junio 2011
  • mayo 2011
  • abril 2011
  • marzo 2011
  • enero 2011
  • diciembre 2010
  • noviembre 2010
  • octubre 2010
  • septiembre 2010
  • agosto 2010
  • julio 2010
  • junio 2010
  • mayo 2010
  • abril 2010
  • marzo 2010
  • febrero 2010
  • enero 2010
  • diciembre 2009
  • noviembre 2009
  • octubre 2009
  • septiembre 2009
  • agosto 2009
  • julio 2009
  • junio 2009
  • mayo 2009
  • abril 2009
  • marzo 2009
  • febrero 2009
  • enero 2009
  • diciembre 2008
  • noviembre 2008
  • octubre 2008
  • septiembre 2008
  • agosto 2008
  • julio 2008
  • junio 2008
  • mayo 2008
  • abril 2008
  • marzo 2008
  • febrero 2008
  • enero 2008
  • diciembre 2007
  • noviembre 2007
  • octubre 2007
  • septiembre 2007
  • agosto 2007
  • julio 2007
  • junio 2007
  • mayo 2007
  • abril 2007
  • marzo 2007
  • febrero 2007
  • enero 2007
  • diciembre 2006
  • noviembre 2006
  • octubre 2006
  • septiembre 2006
  • agosto 2006
  • julio 2006
  • junio 2006
  • mayo 2006
About This Site

A cras tincidunt, ut tellus et. Gravida scel ipsum sed iaculis, nunc non nam. Placerat sed phase llus, purus purus elit.

Archives Widget
  • January 2010
  • December 2009
  • November 2009
  • October 2009
Categories
  • Entertainment
  • Technology
  • Sports & Recreation
  • Jobs & Lifestyle
Search
  • twitter

Powered by WordPress  |  Business Directory by InkThemes.

This site uses cookies: Find out more.