Menú de navegaciónMenú
Categorías

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

?id=4e5fba47-d200-4e59-b6b8-334d0a6cad6a

El futuro de .NET en 2020: guía para desarrolladores (justificadamente) despistados

Ya he dicho aquí en muchas ocasiones que dejar el marketing/comunicación de .NET en manos de sus propios desarrolladores es un error. Se demostró sobradamente cuando empezaron a preparar lo que posteriormente se convertiría en .NET Core. Lo anunciaron con más de 2 años de antelación, pero parecía que iba a ser inminente, y además lo bautizaron inicialmente como .NET 5, lo que daba a entender que era simplemente una versión nueva de .NET 4.x, llamada a sustituirla, cuando en realidad era un framework aparte, multiplataforma, open source y conceptualmente muy distinto aunque parecido en las formas. Por el medio hicieron más cambios de nomenclatura (por ejemplo, la primera intentona con .NET Core, fue .NET Core 5 🤦‍♂️  y para liarlo más ASP.NET era ASP.NET 5, sin Core ni nada hasta que lo volvieron a cambiar, buff), dieron informaciones confusas y, en mi humilde opinión, se llevaron a muchos programadores hacia otras plataformas. Lo peor de todo es que los "insiders" le dijimos repetidamente que estaban cometiendo un error y no nos hicieron caso. Por fin, cayeron de la burra y le pusieron un nombre diferente: .NET Core, que aclaraba muy bien lo importante: que era una plataforma diferente y no una versión nueva de la anterior. Por el medio tuvimos que hacer mucha labor informativa (y ese sólo es el último de muchos) para aclarar todo esto. Ah, ¡esos héroes que nadie reivindica! 😉

El caso es que este año, en mayo, decidieron liarla de nuevo. Anunciaron que iban a trabajar en (redoble de tambores 🥁) ¡.NET 5! Otra vez vuelta a la confusión. Enhorabuena, sois unos fenómenos.

A ver, en realidad la idea es buena. Lo que me parece peor es, como de costumbre, la confusión con la que se comunica, confundiendo a los programadores. Lo que se busca con .NET 5 es que todas las plataformas que tiene Microsoft (.NET Core, .NET framework "clásico", Xamarin...) estén unificadas en una sola, simplificando varias cosas.

Para entendernos, .NET 5 será en realidad la siguiente versión de .NET Core, lo que pasa es que eliminan el "Core" del nombre y se saltan la versión 4.0 para ir directamente a la 5.0. Además, meten bajo el mismo tejado tecnologías que antes estaban solamente en .NET tradicional ya que para entonces esperan haber migrado todas las APIs tradicionales (de Microsoft, claro) a .NET Core, y si no las han migrado es, bien porque están obsoletas, o porque existe una API diferente más moderna que la sustituye con éxito.

La idea central que se persigue es mejorar el lío actual con .NET obteniendo:

  • Una única plataforma .NET unificada y un único runtime de .NET que funcione igual en todos los sistemas y ofrezca las mismas posibilidades en todos los entornos de desarrollo, para crear aplicaciones de todo tipo: escritorio, Web, móvil, Cloud...
  • Ampliar la capacidad de .NET Core incluyendo también lo mejor de .NET tradicional, Xamarin e incluso Mono.
  • Tener una única base de código y no varias separadas como pasa ahora.

Este es el gráfico de esta visión, publicado por la propia Microsoft:

Esquema de la plataforma .NET 5

En teoría esto está genial, ya que en .NET 5 todos los desarrollos compartirán el mismo tipo de archivos de proyecto, el mismo runtime, las mismas capacidades de los lenguajes y tendrán acceso a las mismas APIs, independientemente del tipo de aplicación que estés construyendo. Y todo ello combinado con las estupendas capacidades que ofrece .NET Core hoy en día: multiplataforma, mucho mayor rendimiento, menor uso de memoria, modularidad para usar sólo lo que necesites, facilidad de ejecución side-by-side... También tendrá interoperabilidad sencilla con Java para todas las plataformas, interoperabilidad con Objective-C y Swift en varios sistemas operativos, y CoreFX (el corazón de .NET Core) añadirá soporte para cuestiones como la compilación Ahead Of Time (estática).

En realidad, hay cosas que se están migrando (como por ejemplo Windows Forms) que sólo funcionarán en Windows porque dependen de APIs del sistema sólo presentes en este sistema operativo. Otras cuestiones propias de Xamarin estarán atadas a sistemas operativos móviles.

Todas las aplicaciones de .NET 5 van a utilizar CoreFX por debajo, el motor de .NET Core, con las ampliaciones y cambios que le harán durante los próximos meses. Lo que van a hacer para lograrlo es añadirle cosas para garantizar que funciona en los sitios en los que ahora mismo no puede, básicamente en aplicaciones móviles con Xamarin y en aplicaciones Web basadas en WebAssembly con Blazor. Pero, como digo, seguramente algunas cosas no funcionarán en todas partes de todas formas.

Cuándo lanzarán .NET 5

El lanzamiento de .NET 5 está programado para noviembre de 2020. Seguramente habrá algunas betas a finales del primer semestre del año, pero conociendo el histórico del desarrollo de .NET Core, es posible que entre las betas/RCs y la versión final haya muchísimos cambios.

ACTUALIZACIÓN 19/5/2020: Microsoft acaba de anunciar en el evento BUILD que .NET 5 será tan solo una preview, y que la versión definitiva de .NET unificado llegará con .NET 6.0, supuestamente para noviembre de 2021.

En el ínterin, si tienes curiosidad y nivel suficiente, puedes ir viendo los avances constantes en el desarrollo a través de los diversos proyectos Open Source que hay detrás de este proyecto.

¿Qué significa todo esto en la práctica? ¿Qué implica para mí?

Bueno, es difícil dar una respuesta categórica hasta que lancen la versión definitiva, pero creo que sí hay unas cuantas cosas claras a día de hoy:

  1. El futuro de .NET es .NET Core. Da igual que le llamen .NET 5: sigue siendo .NET Core y todo o que aprendas ahora te servirá para después con esta nueva versión.
  2. .NET 4.8 será la última versión de .NET "clásico" que aparezca y la plataforma se queda en "mantenimiento". Es un producto maduro y muy capaz y no va a desaparecer. Se seguirá distribuyendo con Windows (por lo que siempre la tienes ahí disponible) ya que el propio sistema depende de ella y se seguirán lanzando actualizaciones de estabilidad, seguridad y arreglo de bugs. Si quieres un desarrollo sin sobresaltos y atado a Windows, sigue siendo quizá la mejor opción.
  3. Tras haber lanzado .NET Core 3 en septiembre, no se van a migrar más características de .NET Clásico a .NET Core (ni a .NET 5). Así que si quieres usar Web Forms con ASP.NET Core, mala suerte (o pásate a Blazor cuando esté listo, que se parece un poco, como un huevo a una castaña 😆) Si quieres migrar un servicio WCF a .NET Core, mala suerte: utiliza Web API o gRPC. Si tienes proyectos creados con Workflow Foundation, mejor suerte: hay una versión Open Source de Workflow Foundation migrada a .NET Core, pero no por Microsoft.
  4. No tienes que (ni debes) migrar tus aplicaciones actuales a .NET Core o .NET 5 cuando esté disponible. Seguirán siendo plataformas diferentes y la migración directa no suele ser una buena idea.
  5. Si quieres/tienes que aprender .NET, aprende .NET Core y C#. Salvo que tengas que trabajar con aplicaciones antiguas, aunque se parecen mucho.

Por otro lado, y esto ya es una opinión personal, aunque no creo que ande muy errado, ponerle como nombre .NET 5 me parece un grave error. Confunde al que no conozca bien lo que está pasando y puede llevar a pensar que es una nueva versión de .NET 4. y que lo que se ha parado es .NET Core, cuando es justo lo contrario. De acuerdo, esto no es 2016 y la confusión será menor que entonces, pero ¿tan terrible hubiera sido llamarle .NET Core 5 y dejar las cosas claras? O incluso sacar un .NET Core 4 con algunas de las novedades y en unos pocos meses .NET Core 5 con todo lo que planean.

En cualquier caso, y esto es lo que importa, la idea que hay detrás de todo esto es buena, sabemos que .NET Core es el futuro y que aprendiendo ahora .NET Core no nos arrepentiremos de apostar por la plataforma ni a corto ni a largo plazo, ya que .NET 5 será tan solo .NET Core con otro nombre (no creo ni que cambien los espacios de nombre que ahora mismo llevan core por todas partes y la podrían liar pardísima).

Espero que esto te ayude a aclararte sobre los movimientos de Microsoft en cuanto a desarrollo.

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 (8) -

Gracias por la publicación, la misma me ha servido de mucho para aclarar sobre el futuro de .NET Core y también para entender que .NET 5 seguirá siendo .NET Core mejorado.

Responder

Por fin alguien que deja todo claro del batiburrillo .Net. Buen artículo! 😁😁

Responder

Gracias  por  el resumen, me  ha  sido de mucha utilidad!

Responder

Gracias!  gracias!  
Muy buena información para los que vamos comenzando y no entendemos del todo el rumbo que Microsoft le esta dando a su nueva y vieja plataforma de desarrollo.

Responder

Eloy Garcia Ceja
Eloy Garcia Ceja

Microsoft si que confunde en algunas ocasiones, he estado probando Net Core, me gusta mucho por la linea de comando y que es flexible

Responder

Todo esto genera incertidumbre por parte de Microsoft y efectivamente hace que muchos desarrolladores cambien de plataforma por una que ofrezca mayor garantia y soporte (como java por ejemplo que lleva muchos años soportado por la comunidad)  y mientras mas se demoren en sacar una version o en esclarecer las dudas sobre cual sera el futuro de cierta tecnologia sus desarrolladores no sabran que camino tomar. Hay mucha gente que sabe .net y el concepto de net core aun no se termina de difundir, Otro es que quiza el mensaje no llegue a las partes mas alejadas del mundo donde aun se desarrolla con tecnologia de hace 5 o 10 años. Pienso que .Net es una gran plataforma para crear aplicaciones quiza la mejor pero esta sujeta a decisiones directivas, al marketing, licencias donde la tecnologia que no les genere ganancias es simplemente eliminada, abandonada (Microsoft ya lo hizo anteriormente) sin oportunidad de ser mantenida por alguna comunidad y eso NO hace que Microsoft sea una mala empresa, es natural puesto que es comercial siempre velara primero por sus intereses. La pregunta es si la comunidad de programadores estara dispuesta a continuar con este habito o evaluar una posibilidad de cambio de tecnologia de desarrollo.

Responder

José Manuel Alarcón
José Manuel Alarcón

Hola Leonardo:

En este caso el futuro está claro. Simplemente, en mi humilde opinión, el nombre elegido no es el más apropiado. Hoy más que nunca el futuro es .NET Core sin duda.

Tampoco hay peligro en esta ocasión de que nos dejen tirados y sin poder soportar o desarrollar la tecnología ya que todo (la propia plataforna, los lenguajes, las subtecnologías que usan...) es de código abierto y disponible para que pueda colaborar todo el mundo. De hecho esto ha logrado que la comunidad crezca como nunca.

Saludos y gracias por comentar.

Responder

Víctor E. Díaz
Víctor E. Díaz

Excelente, ya me cayó el ¢0.20

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.