.NET Core 3.0 y su soporte para desarrollar aplicaciones Windows
Una de las recientes novedades anunciadas por Microsoft tiene que ver con que WinForms, WPF y WinUI (Windows UI XAML Library) son desde ahora Open Source, tal y como comentó Scott Hanselman en una entrada se su blog y que puedes leer en este enlace y como se puede leer en el anuncio oficial de Microsoft.
Si te pica la curiosidad, podrás acceder al código de GitHub de WinForms aquí, al de GitHub de WPF aquí, y al de GitHub de WinUI aquí.
Por lo tanto, la novedad quizás más destacable es la posibilidad que tenemos de desarrollar aplicaciones para Windows utilizando WPF, WinForms y Entity Framework 6 con .NET Core 3.x .
Las dos primeras versiones de .NET Core (1.x y 2.x) se focalizaron en la Web principalmente.
Si bien .NET Core entró en el mercado después de una versión 1.x un tanto dubitativa, la versión 2.x ha estabilizado el paquete de desarrollo.
Pero conviene remarcar un dato.
No olvidemos que .NET Core 3 continúa sin perder un ápice sus orígenes y continúa open source y multiplataforma capaz de ejecutarse en contenedores y en la nube.
Es algo obvio, pero puede haber desarrolladores que lleguen a pensar que Microsoft ha dado un nuevo giro de timón con esta nueva versión, pero nada de eso. Simplemente ha ampliado la zona de influencia de desarrollo abarcando ahora el desarrollo de aplicaciones Windows.
De todos los modos y como siempre que se produce una noticia de cierto calado, hay quienes toman esa noticia como algo negativo y quienes lo toman como algo positivo.
De hecho, cuando Scott anunció esto, hubo quién criticó la noticia tal y como puede leerse en Twitter.
Sin embargo, Scott fue tajante al respecto y dejó suficientemente clara su postura, una postura que he defendido en alguna otra entrada de mi blog y en MsCoders Madrid cuando ha salido el tema.
En nuestra profesión es preciso partir de una premisa.
Que yo no utilice ciertos lenguajes de desarrollo o cierto tipo de aplicaciones, o que yo me encuentre dentro de un foro, grupo o empresa que no los usa, no significa que no se utilicen o no sean utilizados por otros.
Por lo tanto, es lógico pensar que Microsoft decida de forma estratégica ampliar su abanico.
Hay que entender que muchas aplicaciones de escritorio utilizan hoy día Entity Framework, y hay muchos desarrolladores y empresas que desarrollan aún para Windows, por lo que parece lógico que los desarrolladores de Windows tengan derecho de poder utilizar todas las bondades que .NET Core les puede ofrecer en el desarrollo Windows.
La verdad es que tiene cierta lógica.
Por un lado, .NET Core se hizo sexy con una orientación abierta, open source, y multiplataforma.
De esta manera, Microsoft se ha convertido en atractiva haciendo que nuevos desarrolladores llegaran a su plataforma.
Ahora que esos desarrolladores se encuentran dentro de la zona de influencia de Microsoft, ésta decide atraer nuevamente a los desarrolladores de Windows para que no se queden fuera de juego y maltratados por la propia Microsoft.
Si analizamos todo esto, este movimiento es muy inteligente a la vez que sensato.
Como referencia, te invito a leer una entrada de Matt Warren sobre los 4 años de open source de .NET en este enlace.
Ahora bien, si quieres ver cómo funciona WPF en .NET Core 3.x, creo (sino estoy mal informado) que en Windows, NuGet Package Explorer v5 está desarrollado en .NET Core 3 utilizando WPF.
En resumen, lo que Microsoft intenta es disponer de una plataforma que nos permita desarrollar casi cualquier tipo de aplicación.
(Imagen extraída del blog de Scott Hanselman)
No sé qué opinión te merece todo esto.
Siempre me chocó ver que .NET Core dejaba de un lado a Windows, pero ahora veo que han decidido cubrirlo también, algo que me alegra aunque llegue 4/5 años tarde.
Sólo tengo un «pero» en todo este asunto, y es la posibilidad de desarrollar una aplicación Windows en .NET Core 3.x y poder pasarla directamente a Linux y macOS, algo que si nadie me corrije, creo que no es posible hacer… aún, ya que parece ser que tiene una complejidad enorme.
Nunca se sabe… quizás la Comunidad pueda aportar su granito de arena.
Veremos…
Happy Coding!
2 Responsesso far
Lo de portar WPF a Linux y macOS no creo que vaya a pasar. Nos tendremos que conformar con Avalonia, que aunque sigue verde, cada vez es mejor.
Hola Adrián.
Perseguido por Mono y otros tantos…
Desde luego que difícil o complicado es.
Lo veo como una gran contribución de la Comunidad para hacer posible la multiplataforma en UI.
Lo de Avalonia (https://github.com/AvaloniaUI/Avalonia para los que no lo conozcan) es precisamente la idea, pero nunca se sabe.
Igual con suerte terminamos viéndolo posible. 🙂
Tiempo al tiempo…
¡Gracias por comentar!