Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

?id=029fd503-4a6a-48b5-b747-2ba2ba11a631

Qué hay de nuevo en .NET 6

Imagen ornamental

Microsoft ha lanzado por fin .NET 6, en el calendario prometido tras el retraso de 1 año provocado, en teoría, por la pandemia. Se trata de la culminación (o casi) de un enorme esfuerzo de unificación de plataformas bajo un mismo paraguas (.NET) que permite crear todo tipo de aplicaciones, en todo tipo de sistemas operativos, con una plataforma que es al mismo tiempo gratuita y de código abierto.

Como ya he explicado en muchas ocasiones (la más reciente, en este vídeo) Microsoft confundió a mucha gente desde el principio con los nombres de sus nuevas tecnologías de desarrollo. Al final han terminado cerrando el círculo y le han dado a la tecnología el mismo nombre que tenía inicialmente: tan solo .NET, quitándole el "Core", aunque todavía persiste en algunas tecnologías subyacentes (si tienes dudas sobre esto, mira el vídeo que te indicaba antes).

En realidad .NET 6 no cumple su promesa unificadora por completo. Sin desdeñar el enorme esfuerzo que ha supuesto lo que tenemos en .NET 6, y que tenemos que agradecer a los infradotados equipos que trabajan en las distintas partes de .NET, realmente la unificación no está completa. Lo más notorio es la falta de una versión definitiva de .NET MAUI, la nueva plataforma para crear aplicaciones móviles (y de escritorio en realidad) que va a sustituir a Xamarin. Ya iba a aparecer hace un año con .NET 5, pero parece que no estará lista al menos hasta mediados de 2022. Tampoco está terminado del todo el Windows App SDK (llamado anteriormente "Project Reunion" que quizá te suene más), y que promete unificar las APIs para crear aplicaciones de escritorio en Windows, sean con el clásico y confiable Windows Forms o el más moderno UWP (Universal Windows Platform) basado en WPF.

Novedades de .NET 6

A pesar de todo esto, .NET 6 es un producto enorme y muy potente que nos permite crear todo tipo de aplicaciones en todo tipo de sistemas operativos y dispositivos. Desde su versión anterior se han introducido en la plataforma una ingente cantidad de nuevas características y mejoras.

Microsoft ha publicado un enorme artículo detallando hasta la más pequeña de las novedades en .NET 6. Este documento tiene más de 16.000 palabras, y además hay otros muchos paralelos detallando cosas concretas, pero para que no tengas que leerlo todo y recopilando enlaces, voy a tratar de resumirte lo más importante a continuación, con enlaces a información adicional, aunque siempre tienes el de Microsoft para profundizar en lo que necesites:

  • Una de las mejoras más relevantes es un aumento de rendimiento de hasta el 90% (casi el doble) en algunos casos. Esto reafirma su posición como una de las plataformas de mayor rendimiento y, probablemente, la de mayor potencia de las plataformas convencionales no especializadas, como ya lo era en su versión 5.0. Aquí tienes un artículo muy largo y muy detallado de todo lo que han hecho para conseguirlo. Es especialmente relevante el trabajo que han hecho con el acceso a disco, en el que el aumento de rendimiento es espectacular (y además soporta enlaces simbólicos).
  • Junto con .NET llega una nueva versión del lenguaje de programación C#, la 10. En esta versión se introducen multitud de novedades como los using globales e implícitos, los archivos con ámbito de espacio de nombres, mejoras en funciones lambda, mejoras en estructuras, mejoras en cadenas interpoladas... y muchos detalles más que puedes ver en el enlace anterior.
  • Algo que no es una característica en sí, sino más bien una cuestión operativa en empresas medianas/grandes (pero que es muy importante), es que .NET 6 es una versión de soporte a largo plazo (LTS). Esto significa el fin del soporte de la anterior LTS (.NET Core 3.1) y que la 6 va a estar soportada durante al menos 3 años, o sea, un año adicional a partir de que salga la siguiente LTS (que será .NET 8 en noviembre de 2023): hasta noviembre de 2024. Te expliqué en su día qué significa todo esto en este artículo: Cómo garantizar el soporte a largo plazo de tu aplicación .NET.
  • Hot Reload, que te permite ´cambiar el código "en caliente", mientras estás depurando sin necesidad de parar y reiniciar las aplicaciones. De este tema te he hablado detalladamente en un vídeo  hace poco por toda la polémica que hubo debido a que decidieron, a última hora, quitarlo para que sólo funcionase si usabas Visual Studio. La comunidad se lo tomó muy mal (y con razón por hacerlo de esa manera). Por suerte se ha quedado en nada y Hot Reload es una de las características estrella de esta versión.
  • Se ha introducido las Minimal APIs, que permiten crear APIs sencillas de manera rapidísima y casi sin código. En mi opinión (y la de otros que saben más que yo) se usarán poco en aplicaciones reales, pero permiten a Microsoft competir con Node.js y similares para atraer a programadores que se inician con la plataforma.
  • Los componentes Blazor ahora pueden ser renderizados desde JavaScript. Magia negra que se suma a la capacidad de este excelente framework para poder interactuar entre JavaScript y C#. Además, ahora se permite la compilación AOT (Ahead Of time) a WebAssembly, lo que da mayor rendimiento y habilita las referencias a dependencias nativas.
  • Ahora se pueden crear ejecutables únicos autocontenidos que no necesitan descompresión, en Windows y Mac (antes solo en Linux). Te expliqué en su día de qué va esto en el artículo: .NET Core / .NET 5: Cómo publicar aplicaciones en un único ejecutable. Dentro de este apartado, el recortado de código en lenguaje intermedio (IL Trimming) es más capaz y efectivo, con nuevos avisos y analizadores para garantizar que no salta todo por los aires a la hora de crear ejecutables más ligeros.
  • Se han mejorado las capacidades de monitorización y telemetría para la nube, que ahora son compatibles con Open Telemetry 1.0 y con la novedad de dotnet monitor, que es muy interesante.
  • Se han añadido nuevas APIs para dar soporte a HTTP/3, para matemáticas, para trabajar con JSON o para manejar fechas y horas de manera independiente.
  • La seguridad se ha mejorado más aún, con soporte para OpenSSL 3, con soporte del esquema de cifrado ChaCha20Poly1305 (🤦‍♂️), y varias mitigaciones en tiempo de ejecución, en concreto W^X y CET en procesadores Intel. En cristiano: que ahora es mucho más segura 😉
  • Con .NET 6 también tenemos soporte para compilar y funcionar nativamente en los procesadores M1 de Apple.

Recuerda que en su día también te hablamos en este blog de las novedades más destacables de ASP.NET Core y Blazor en .NET 6.

.NET 6 es el paso definitivo para la unificación de todas las plataformas de desarrollo de Microsoft. Le faltan algunas cosas que irán estando disponibles en los próximos meses, cerrando el proceso. Todo lo que falta por añadir formará parte integral de .NET 6, por lo que será también LTS cuando esté disponible, y tendrá soporte a largo plazo.

Estamos ante una nueva era en el desarrollo con .NET, que nunca ha sido tan potente ni con tantas capacidades. Si te interesa aprenderlo en serio partiendo de cero y llegando un buen nivel con el que volar por tu cuenta, acuérdate de nuestro curso: Desarrollo con la plataforma .NET 6 y C# 10.

José Manuel Alarcón Fundador de campusMVP, es ingeniero industrial y especialista en consultoría de empresa. Ha escrito diversos libros, habiendo publicado hasta la fecha cientos de artículos sobre informática e ingeniería en publicaciones especializadas. Microsoft lo ha reconocido como MVP (Most Valuable Professional) en desarrollo web desde el año 2004 hasta la actualidad. Puedes seguirlo en Twitter en @jm_alarcon o leer sus blog técnico o personal. Ver todos los posts de José Manuel Alarcón
Archivado en: Lenguajes y plataformas

¿Te ha gustado este post?
Pues espera a ver nuestro boletín mensual...

Suscríbete a la newsletter

La mejor formación online para desarrolladores como tú

Comentarios (1) -

.NET 6 ya sí se puede considerar un "framework" verdaderamente interesante para "start-ups". Veremos si lo empiezan a utilizar en lugar de Node.js o Python.

Responder

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.