NET Core 3.0 novedades)

¿Te gustaría aprender .NET Core desde cero?
Tenemos los cursos que necesitas. ¡Haz clic aquí!

Hoy en día sigue habiendo una gran confusión en torno a todo lo que tiene que ver con la plataforma, sus versiones, sus compatibilidades, etc… En este periodo hemos escrito varios artículos tratando de explicar estas cosas y orientar a los que lo necesitaran. No sin dificultad porque, sobre todo en 2015, las cosas no estaban claras ni siquiera internamente en Microsoft, y la cuestión pegó muchos bandazos.

Ahora que ya tenemos una versión madura (la 2.0) de la plataforma ¿en qué estado están las cosas? ¿Qué debemos esperar de cara a finales de 2017 y principios de 2018 en lo que respecta a las tecnologías de desarrollo de .NET? ¿Cuál es el panorama actual?

¿Es una tecnología, son dos o quizá más?

Aunque son muy parecidas, comparten lenguajes, clases y funcionalidad, se trata de dos tecnologías totalmente diferentes. De hecho podríamos hablar en realidad de 3 tecnologías de desarrollo de Microsoft, si incluimos a Xamarin, que también está basado en .NET pero tiene su propia implementación multi-plataforma basada en Mono.

Por lo tanto ahora mismo existen stacks tecnológicos separados, que a pesar de compartir muchos conceptos, son tecnologías diferentes y paralelas:

Diagrama esquemático de las distintas plataformas de Microsoft: .NET, .NET Core y Xamarin

La plataforma .NET 4.x

También conocida como .NET «Full Framework» o .NET «Tradicional».

Se trata de la plataforma .NET «de toda la vida», aparecida oficialmente en 2001. Monolítica (instalas todo su núcleo o no instalas nada), pero tremendamente capaz, ya que con ella puedes crear aplicaciones de cualquier tipo: de consola, de escritorio, para la web, móviles… Casi cualquier cosa que puedas imaginar.

Eso sí, se trata de aplicaciones que se ejecutarán solamente sobre Windows.

En la actualidad va por su versión 4.7 (lanzada en Abril de 2017, con Visual Studio 2017), y existen miles de componentes de terceros para poder extenderla.

Con ella puedes utilizar también infinidad de lenguajes de programación: C#, Visual Basic .NET, F#, C++, Python… ¡Hasta Cobol!

La utilizan miles de empresas en todo el mundo. No va a cambiar mucho en los próximos años.

La plataforma .NET Core

Es una nueva plataforma, escrita desde cero con varios objetivos en mente, siendo los principales:

  • Más ligera y «componentizable»: de modo que con nuestra aplicación se distribuya exclusivamente lo que necesitemos, no la plataforma completa.
  • Multi-plataforma: las aplicaciones que creemos funcionarán en Windows, Linux y Mac, no solo en el sistema de Microsoft.
  • Alto rendimiento: no es que .NET tradicional no tuviese rendimiento, pero es que .NET Core está pensada desde el principio con esto en mente. .NET Core tiene un desempeño más alto que la versión tradicional, lo cual es muy importante para entornos Cloud, en donde esto se traduce en mucho dinero al cabo del tiempo.
  • Pensada para la nube: cuando .NET se diseñó a finales de los años 90 el concepto de nube ni siquiera existía. .NET Core nace en la era Cloud, por lo que está pensada desde el principio para encajar en entornos de plataforma como servicio y crear aplicaciones eficientes para su funcionamiento en la nube (sea de Microsoft o no).

Con .NET core, hoy por hoy, solo podemos crear aplicaciones de consola, aplicaciones Web (con ASP.NET Core y ASP.NET Core MVC), y aplicaciones universales de Windows para Windows 10 o posterior.

En cuanto a los lenguajes disponibles, podremos utilizar C#, F# y Visual basic .NET.

Hoy en día existen todavía bastantes menos componentes de terceros (bibliotecas y similares) para .NET Core que para .NET tradicional. Se está tratando de solucionar con .NET Standard y un shim para unificar bibliotecas que intenta conseguir que sea más fácil crear bibliotecas para ambas plataformas, pero todavía no están a la misma altura.

En el momento de escribir esto .NET Core va por su versión 2.0, aparecida en agosto de 2017. Se trata a estas alturas de una tecnología estable y dotada de funcionalidad, que nos permitirá crear aplicaciones de gran capacidad y multi-plataforma. Es decir, podemos crear una aplicación web con .NET Core que se ejecute bajo un servidor NGinx en Linux, aprovechando las ventajas que nos da esa plataforma, y acto seguido ponerla a andar en paralelo en un sistema con Windows Server 2016 e IIS en Windows, con una ganancia de rendimiento importante frente a una aplicación creada con ASP.NET MVC 5.

.NET Core 2.1 se espera para el primer trimestre de 2018. Se habla de que traerá de vuelta a los AppDomains, que se portarán más APIs y que, con suerte, se lanzará con .NET Standard 2.1 para acercarla cada vez más a las capacidades de la plataforma .NET completa.

Obtén descuentos exclusivos de nuestros cursos en vivo en línea

Capacítate con los expertos

Xamarin

Xamarin nació como un proyecto Open Source hace muchos años llamado Mono, que trataba de llevar .NET a todas las plataformas en los tiempos en los que Microsoft se negaba a sacar .NET de Windows (hoy en día parece increíble, pero así era). Posteriormente su creador el mexicano Miguel De Icaza (creador también de GNome, el famoso escritorio para Linux) desarrolló lo que hoy en día se conoce como Xamarin, construyendo sobre Mono toda la tecnología para la creación de aplicaciones nativas para móviles en todas las plataformas (iOS, Android y Windows Mobile).

En la actualidad Xamarin se puede usar para crear aplicaciones en muchas otras plataformas incluyendo (y sobre todo) Mac, pero también Windows (mediante UWP), Apple Watch, Android Wear, Apple TV, etc….

Microsoft compró Xamarin a principios del año pasado. Lo ha hecho totalmente gratuito y lo ha incluido en su Visual Studio, tanto para Windows como para Mac. Esto ha disparado el uso de esta tecnología que se ha convertido en la tercera plataforma de desarrollo de Microsoft.

En muy poco tiempo Xamarin se ha postulado como la gran alternativa de desarrollo para casi todo excepto la web.

En Xamarin se debe programar con el lenguaje C#, y posee un ecosistema de componentes y extensiones de terceros que es excepcional.

Tecnologías relacionadas

Alrededor de .NET existen multitud de tecnologías relacionadas que dependen del tipo de aplicaciones que vayamos a crear, como por ejemplo:

  • ASP.NET: la base para crear aplicaciones Web basadas en .NET, con múltiples capas por encima como Web Forms, MVC, Web API o Web Pages en el caso de .NET tradicional.
  • Entity Framework: la tecnología de acceso a datos ORM (Object Relational Mapping) de Microsoft.
  • WPF (Windows Presentation Foundation), para crear interfaces de usuario.

Dado que .NET Core permite crear aplicaciones web y para la UWP, y esta última solo sirve para Windows, podemos decir que lo que nos ofrece .NET Core por encima de la plataforma base es fundamentalmente Entity Framework Core (para acceso a datos, y con diferencias respecto a Entity Framework «tradicional»), y ASP.NET Core (para desarrollo web). ASP.NET Core ofrece una serie de funcionalidades adicionales por encima, como MVC, Razor Pages (una nueva característica que ha aparecido con .NET Core 2 para crear fácilmente páginas dinámicas y que ya veremos si cuaja o no) y SignalR que todavía no es más que una versión «alpha» y tardará bastante tiempo todavía en aparecer en Core de manera oficial.

Dicho esto, el siguiente diagrama comprara .NET y .NET Core en aquello que tienen en común, es decir, el acceso a datos con Entity Framework y el desarrollo de aplicaciones web.

Como vemos ambas se parecen mucho, pero en el caso de .NET Core SignalR todavía no está disponible (se espera aún para el año que viene, casi con toda seguridad con .NET Core 2.1 en el primer trimestre). Otras tecnologías más antiguas como Web Forms no están disponibles ni nunca lo van a estar, y las recién estrenadas «Razor Pages» tratan de sustituir a las «Web Pages» tradicionales que en cualquier caso nunca tuvieron demasiado tirón.

Para crear aplicaciones Web ASP.NET MVC 5 y ASP.NET Core MVC, a pesar de compartir el nombre y por supuesto muchos conceptos, son tecnologías diferentes para las cuales hay que aprender características y formas de trabajar muy diferentes, por lo que el cambio de una a otra no es directo.

En lo que respecta a Web API, la tecnología para crear servicios REST con .NET, en la plataforma tradicional era una biblioteca externa y en .NET Core viene incluido de serie con ASP.NET Core MVC. Además han cambiado algunas cosas, simplificando de hecho el desarrollo.

En resumen .net core, .net y xamarin

En el ámbito de tecnologías de desarrollo de Microsoft existen básicamente 3 opciones:

  • La plataforma .NET tradicional, con la que podemos crear todo tipo de aplicaciones. Estable, muy utilizada y con pocos cambios en el horizonte.
  • La plataforma .NET Core: la tecnología de futuro de Microsoft. Ya en su versión 2 y estabilizada, poco a poco irá tomando cuota de mercado y será más y más utilizada, aunque de momento va por detrás de la anterior. Multiplataforma y utilizada sobre todo a desarrollo Web.
  • Xamarin: la última adquisición pero con muchos años de historia detrás. Permite crear aplicaciones multi-plataforma sobre todo pensando en desarrollo para móviles (iOS, Android), pero también para Mac, Windows 10 y en breve para Linux. En muy poco tiempo ha crecido como la espuma.

Con .NET Standard Microsoft está tratando de unificarlo todo de cara al futuro: .NET framework (tradicional), .NET Core, Mono, Xamarin, UWP… de modo que al final tengamos un subconjunto común que nos permita intercambiar bibliotecas y funcionalidad entre todas las plataformas. Ese es el gran reto a medio plazo.

Te invitamos a ver todos los artículos que tenemos para ti, coméntanos que tal te pareció este articulo y compártelo con más personas.

¿Te gustaría aprender .NET Core desde cero?
Tenemos los cursos que necesitas. ¡Haz clic aquí!

About Author

NGuerrero

0 0 votos
Article Rating
Suscribir
Notificar de
guest
0 Comments
Comentarios.
Ver todos los comentarios

Aprende .NET Core desde cero

X
0
¿Te gusta este articulo? por favor comentax