ASP.NET Core en Linux

Description

Hace un tiempo comencé a usar Linux como SO en mi trabajo y como .netero de larga data extrañaba un poco a mi viejo y querido ASP.NET.

Por lo tanto me decidí a instalar y configurar .NET Core y levantar un proyecto ASP.NET Core. Con la ayuda de mi compañero @camboris nos pusimos manos a la obra y decidí documentar el paso a paso para quienes tengan intención de trabajar fuera de Windows. No quiero dejar de mencionar a @ealsur que me dio una mano como siempre.

Importante 

La instalación la realice sobre Ubuntu, por lo tanto vamos a usar el comando apt-get que es una herramienta de Debian (la distro en la que se basa ubuntu). Si usan una derivada de Redhat tendrán que usar rpm o yum y si usan Arch (como @camboris) esta pacman.

Primer paso, instalar DNVM (.NET Version Manager). 

DNVM nos permite instalar y configurar las diferentes versiones del runtime de .NET en Linux. 

Los comandos a ejecutar son los siguientes: 

1. Instalar unzip y curl en caso de que no lo tengamos: 

sudo apt-get install unzip curl

2. Descargar e instalar DNVM: 

curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh | DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh

En caso de que todo haya salido bien, se nos debería presentar lo siguiente:

Instalando DNVM

DNVM nos proporciona un conjunto de utilidades de línea de comandos que nos permiten configurar nuestro entorno de ejecución .NET (DNX) posibilitándonos el desarrollo de aplicaciones .NET Core en otro tipo de plataformas (en nuestro caso Linux).

Instalando DNX (.NET Execution Environment)

.NET Execution Environment (DNX) nos permite compilar y ejecutar nuestros proyectos .NET. Vamos a utilizar DNVM para instalar DNX para .NET Core (también esta la posibilidad de hacerlo para Mono). 

1. Instalar los paquetes requeridos por DNX: 

sudo apt-get install libunwind8 gettext libssl-dev libcurl4-openssl-dev zlib1g libicu-dev uuid-dev

2. Usamos DNVM para instalar DNX (.NET Core): 

dnvm upgrade -r coreclr

Realizado esto tendremos disponible la el entorno de ejecución de .NET Core listo para usar. Podemos ejecutar el comando dnx para verificar que todo este correcto:

Ejecutando el comando DNX

DNX contiene todo el código necesario para inicializar y ejecutar nuestras aplicaciones .NET (compilation system, SDK tools, native CLR hosts).  

Nos permite tener diferentes ambientes (.NET Framework, .NET Core, Mono) en diferentes plataformas (Windows, Linux, Mac). 

DNX entre otras cosas nos proporciona comandos que nos serán útiles: 

dnu restore (descarga los paquetes que estoy utilizando en mi aplicación) 
dnx run (ejecuta una aplicación .NET) 
dnx web (ejecuta una aplicación web)

 Podemos usar el siguiente comando de DNVM para listar los DNX instalados y cual esta activo:

dnvm-list

Instalar Libuv 

Libuv es una librería multiplataforma que se encarga de abstraer la comunicación de IO - memoria, acceso a files, etc - con el SO, y Kestrel - el servidor que hostea ASP.NET 5 - va montado sobre la misma, de ahí la nececidad de instalarlo. 

Para proceder a la instalación hay que ejecutar los siguientes comandos: 

sudo apt-get install make automake libtool curl 
curl -sSL https://github.com/libuv/libuv/archive/v1.8.0.tar.gz | sudo tar zxfv - -C /usr/local/src 
cd /usr/local/src/libuv-1.8.0 
sudo sh autogen.sh 
sudo ./configure 
sudo make 
sudo make install 
sudo rm -rf /usr/local/src/libuv-1.8.0 && cd ~/ 
sudo ldconfig

nstalando Visual Studio Code 

Descargar Visual Studio Code desde https://code.visualstudio.com/Download 

Descomprimir el contenido de la descarga y almacenarlo en una carpeta determinada (en el ejemplo dentro de opt/vscode): 

sudo unzip VSCode-linux-x64.zip -d /opt/vscode

Ejecutamos el executable Code para levantar la aplicación: 

Visual Studio Code

Scaffolding Applications usando Yeoman 

Tengamos en cuenta que Visual Studio Code no tiene la capacidad de crear las plantillas iniciales de nuestros proyectos, por lo tanto necesitamos de una herramienta que lo haga, es ahí donde entra en juego Yeoman.  

Pero antes de poder trabajar con Yeoman, necesitamos instalar NodeJS (ya que necesitamos trabajar con el gestor de paquetes npm). 

1. Instalando Node (y npm) en Ubuntu (utilizando repo externo) 

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -sudo apt-get install -y nodejs

Más info: https://github.com/nodesource/distributions#debinstall 

2. Instalando Yeoman 

npm install -g yo bower grunt-cli gulp

Cuando bajamos Yeoman también estamos descargando Bower, Grunt y Gulp. 

3. Instalando el generador de proyectos ASP.NET 5 

npm install -g generator-aspnet

Ahora vamos a ejecutar el siguiente comando sobre el directorio donde queremos crear nuestra aplicación: 

yo aspnet

Y luego elegimos el tipo de proyectos que queremos crear:

Yeoman

Corriendo nuestra aplicación 

Ya en Visual Studio Code abrimos el directorio donde creamos nuestra aplicación y vamos a trabajar sobre la misma. Para ejecutar la aplicación, voy a usar los comandos que nos ofrece DNX: 

dnu restore (descarga los paquetes)
dnx web (ejecuta una aplicación)

dnx-web

Nuestra aplicación corriendo (en el puerto 5000):

Aplicación ASP.NET corriendo en Linux

A partir de este momento ya tenemos todo listo para comenzar a trabajar en nuestra aplicación.

¡Espero que les sea de utilidad!

The Discussion

Comments closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to send us feedback you can Contact Us.