Introducción a .NET Core 1.0

En post anteriores estuvimos hablando de .NET Core y toda esta confusión de branding que se armo al respecto. Hoy vamos a hablar de como está compuesto .NET Core y que ventajas trae sobre el clásico .NET Framework que todos conocemos.

¿Qué es .NET Core?

Comencemos con la definición de MSDN:

.NET Core es una versión modular de .NET Framework diseñada para que sea portátil entre plataformas.

.NET Core es el nuevo framework de .NET – escrito desde cero -que incluye un subconjunto de la versión completa de .NET Framework y cuyas principales características es que fue desarrollado de forma modular, multi-plataforma y es open source.

Esta vez fue diseñado de forma modular, lo que nos permite ir agregando paquetes de ensamblado Nuget a medida que lo necesitemos. .NET Core por defecto contiene las características básicas , lo que lo hace más “liviano” que el clásico framework monolítico que contenía infinidad de funcionalidad, mucha de ella obsoleta. Por lo tanto en lugar de tener una gran librería con funcionalidad que no vamos a utilizar, .NET Core está disponible como paquetes más pequeños centrados en las características.

Este esquema no solo nos permite incrementar la performance de nuestras aplicaciones sino que nos permite mayor agilidad en nuestros desarrollos, ya que tenemos la posibilidad de elegir las bibliotecas que realmente vamos a utilizar.

También es multi-plataforma (en Linux y OSX aún hay características en progreso) y lo realmente importante es que nos permite reutilizar código independientemente de la plataforma destino.

Las partes que componen .NET podríamos resumirla de la siguiente manera:

.NETCore

.NETCore

Ahora vamos a explicar brevemente en que consta cada parte.

CoreFX

Implementación de la librería base de .NET Core que incluye las librerías “System” que ya conocemos (System.Collections, System.IO, System.Xml y otras que podemos checkear el el repo de GitHub). También incluye librerías del namespace “Microsoft”.

Es importante tener en cuenta que los tipos bases (int, string, etc) no se encuentran aquí, sino que están en CoreCLR.

Repo de CoreFX

CoreCLR

Se trata de la implementación completa del runtime de .NET Core. En el mismo se incluye RyuJIT, la nueva generación de compiladores JIT de .NET. Como ya mencionamos anteriormente es multiplataforma.

Algo muy interesante de CoreCLR es que se despliega junto con las aplicaciones, por lo que ya no es necesario tener instalado nada en el server o equipo destino (fin a los dolores de cabeza porque la versión del framework del servidor no es la que necesitamos y tenemos que “pedirle a la gente de IT que nos dé pelota”). Esto desde ya supone una gran agilidad en los despliegues de aplicaciones o servicios.

Por otro lado nos permite trabajar en escenarios side by side, es decir tener diferentes aplicaciones corriendo en el mismo servidor con sus propios runtimes.

Repo de CoreCLR

CoreRT

Al igual que CoreCLR se trata de un runtime  optimizado para escenarios AOT (Ahead of Time Compilation). Un compilador AOT compila el código MSIL a código nativo de forma anticipada específicamente para un SO y arquitectura de CPU en particular. Por el contrario los compiladores JIT convierten de MSIL a nativo mientras al aplicación está corriendo (lo que produce ciertas “demoras” cuando la aplicación se utiliza por primera vez).

También permite una simple distribución de la aplicación – y runtime – todo en un único ejecutable.

Repo de CoreRT

CLI

Se trata de la nueva interfaz de línea de comando que incluye el nuevo comando “dotnet” (desaparecen los comandos dnvm, dnu y dnx que ya vimos en un post anterior). Se instala por medio de paquetes (MSI, apt-get, PKG) y son nativos al SO.

El mapeo de los “viejos comandos” a “dotnet” se podría resumir de la siguiente manera:

dnx web dotnet run
dnx run dotnet run
dnu publish dotnet publish
dnu build dotnet compile
dnu restore dotnet restore
dnu install dotnet install

Repo de CLI

Instalar .NET Core

¿Cómo empezar con .NET Core en Windows, OSX , Ubuntu y Docker?. Toda la información que necesitas está acá: http://dotnet.github.io/getting-started/ (solo necesitas tirar un par de comandos y ya tenes todo en tu equipo para empezar a jugar).

Comenzando con .NET Core

Comenzando con .NET Core

Como todos ya saben, .NET Core esta en continua evolución, por lo que habrá que estar atentos a todas las novedades.

Por último, les recomiendo seguir los siguientes enlaces sobre el tema:

Anuncios

Un comentario en “Introducción a .NET Core 1.0

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s