ASP.NET 5 y .NET Core en Linux y Mac con Visual Studio Code

En el último artículo sobre Visual Studio Code para Node.js se hablaba de las características que Visual Studio ofrecía para los desarrolladores de node.js además de las características del editor en sí. En este artículo se va a centra más en las características para los desarrolladores de ASP.NET para Linux y Mac, ya que Microsoft ha liberado el código fuente de ASP.NET5 y .NET Core.

Instalando el Dot Net Virtual Machine

Para poder ejecutar ASP.NET5 primero hay que instalar .Net Code. Este será el encargado de ejecutar el código en la plataforma de destino. Como en Windows la plataforma ya está disponible como .NET Framework y en Linux en la primera vez, se centrará la demo en mostrar cómo se usa e instala en Ubuntu.

De todos modos, para instalar en cualquiera de las tres plataformas se puede seguir esta guía que está disponible en el GitHub oficial de ASP.NET5

clip_image002

Una vez que se ha instalado DNVM se puede ejecutar comandos para ejecutar el servidor web, resolver las dependencias usando Nuget (el gestor de paquetes para .NET)

Nuevo proyecto en Visual Studio Code

Al ser Visual Studio Code un editor y no un IDE no hay manera de crear proyectos desde cero, característica que está disponible en Visual Studio (la versión que sólo se ejecuta en Windows). Para solventar ese problema existe una plataforma basada en node.js llamada yeoman. Esta plataforma permite tener repositorios de paquetes que una vez ejecutados lo que producen son una estructura de carpetas y archivos que son el nuevo proyecto de ASP.NET.

Para tener instalado yeoman junto con otros paquetes que se usarán hay que ejecutar esto en un terminal de Ubuntu:

 npm install -g yo grunt-cli generator-aspnet bower

A partir de aquí lo que se puede hacer es ejecutar el commando yo que permite instalar nuevas plantillas así como ejecutarlas en la carpeta donde está el usuario.

clip_image004

Ya está creado el nuevo proyecto de ASP.NET5, es decir, lo estrictamente mínimo que se necesita para poder empezar a desarrollar una web. El siguiente paso es restaurar los paquetes de Nuget de los que depende el proyecto. Esto están referenciados en el fichero project.json. Ejecutando este comando se restauran todos los paquetes:

 dnu restore

Ahora es el momento perfecto para abrir el proyecto recién creado en Visual Studio Code.

Gestión de proyectos en Visual Studio Code

Como se comentó en el otro artículo sobre VSCode, se puede abrir ficheros individuales para editarlos, o también se pueden abrir capetas que contengan proyectos para editarse. En este caso cuando se abre la carpeta recién creada del proyecto de ASP.NET VSCode se da cuenta de que es un proyecto y automáticamente lo muestra en la barra de estado.

clip_image005

Si, por ejemplo, se abre el fichero Startup.cs que contiene el punto de entrada de la aplicación, ya se puede empezar a escribir código en C# y se tiene el soporte de IntelliSense.

Lanzar el proyecto

ASP.NET tiene un nuevo soporte de fichero de proyecto, donde se definen las dependencias, las variables del proyecto y las demás configuraciones del mismo. Una de las que soporta ahora con el nuevo modelo de ejecución en .NET Core es la posibilidad de definir tareas de inicio para ejecutar el proyecto.

Dentro del nodo de commands, existes de forma predeterminada 4 comandos que se pueden ejecutar para el proyecto.

clip_image007

Los dos primeros comandos son para ejecutar la web en sí misma, el primero de todos para entornos de Windows y se integra perfectamente en Internet Information Server (IIS). El segundo comando es el runtime de ASP.NET5 multiplataforma que se llama kestrel que se encarga del alojamiento de la aplicación.

Los siguientes parámetros están relacionados con Entity Framework, el ORM de Microsoft que su código también está disponible en GitHub. El primer parámetro lo que hace es generar el código relacionado con EF y el segundo es para invocar comandos de EntityFramework como Enable-Migrations o Add-Migrations.

A partir de ese instante se puede lanzar la aplicación directamente desde el terminal escribiendo:

 dnx . kestrel

Y con esto ya se tiene la página funcionando en un navegador directamente en Ubuntu.

Depuración

Aunque la depuración está activa para node.js y necesita Mono en Linux y Mac, la depuración de proyectos de ASP.NET5 todavía no está disponible en Visual Studio Code. Se puede lanzar el proceso y navegar por la aplicación.

Siguientes pasos

Una vez que se ha terminado de desarrollar la aplicación en ASP.NET5 el siguiente paso es publicarlo para que los usuarios puedan consumir la aplicación web.

ASP.NET5 tiene soporte de Docker para poder publicarlo en esta tecnología de contenedores.

https://registry.hub.docker.com/u/microsoft/aspnet/

clip_image009

Luis Guerrero

Technical Evangelisth Microsoft Azure

@guerrerotook