ASP 5 en GNU/Linux con Mono, DNVM, DNU y DNX
By: Date: enero 12, 2016 Categories: Consultoria y Manuales,Programación

Ya hace un tiempo que Microsoft liberó como tecnología abierta .NET para poder difundir su capacidad de ejecutar aplicaciones en cosas que no solo sea Microsoft. Este esfuerzo lo inicio Miguel de Icaza con Mono y Microsoft se le unió para cerrar filas.

Ya antes he escrito artículos de como ejecutar aplicaciones .NET en GNU/Linux usando Mono, tanto con Winforms, WebForms y otras, algunas cosas como Entity Framework, MVC eran más complicadas, pero eso se termina hoy gracias a que Microsoft al fin se pasa a lado correcto de la fuerza y que quiere expandirse después de ya no ser la monopolizadora de tecnología de antaño, atrás quedaron los años de arrogancia de esta corporación.

ASP 5 en GNU/Linux con CentOS Mono y el entorno de Microsoft.

1 Requerimientos básicos

yum install unzip libunwind curl-dev

2 Bajar y compilar Mono al momento de escribir este artículo estaba disponible la versión 4.2.2

http://download.mono-project.com/sources/mono/mono-4.2.2.10.tar.bz2

./configure –prefix=/rutaainstalar
make
make install

Agregar los binarios de mono al PATH para poder ejecutarlos cuando sean requeridos, en este caso uso el siguiente PATH pero eso depende de la ruta destino de instalacion

PATH=$PATH:$HOME/bin:/usr/mono4.2.2/bin

3 Compilar e Instalar librería libuv

http://dist.libuv.org/dist/v1.4.2/libuv-v1.4.2.tar.gz

autogen.sh
./configure –prefix=/rutadeinstalacion
make
make install

Crear los enlaces simbólicos, para este caso yo uso, esto varia dependiendo el lugar de destino de la instalacon

ln -s /usr/lib64/libdl.so.2 /usr/lib64/libdl
ln -s /usr/local/lib/libuv.so.1.0.0 /usr/lib64/libuv.so

4 Instalar las herramientas de Microsoft para crear un entorno donde se puedan ejecutar las aplicaciones .NET

Descargar el instalador de vnvm

wget https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh

chmod +x dnvminstall.sh
./dnvminstall.sh

5 Instalar los certificados de Microsoft, si este paso no se realiza, los dnu restore no descargan las dependencias correctamente, en ocasiones ni siquiera las descarga

certmgr -ssl -m https://go.microsoft.com
certmgr -ssl -m https://nugetgallery.blob.core.windows.net
certmgr -ssl -m https://nuget.org

mozroots –import –sync

Eso es todo, en este punto ya está instalado todo lo necesario para crear un entorno tipo Microsoft amigable para cualquier aplicación. A partir de aquí es valido configurar como si se estuviera en una consola de Windows Server usando los comandos dnvm, dnu y dnx

Me centrare en la configuración con Mono y GNU/Linux aunque con otros parámetros aplica de la misma forma en Windows

Configurando.

dnvm

Descarga los runtime con los que las aplicaciones se ejecutaran. Para indicarle que ya tenemos Mono instalado en el sistema y que será nuestro core.

dnvm upgrade -r mono

Para listar los runtimes que se tienen para trabajar

dnvm list

se debe obtener una salida como la siguiente.

Active Version Runtime Architecture OperatingSystem Alias
—— ——- ——- ———— ————— —–
* 1.0.0-rc1-update1 mono linux/osx default

Para configurar que se usara siempre este runtime

dnvm use 1.0.0-rc1-update1 -r mono -p

En este punto el sistema está listo para ejecutar cualquier aplicación de .NET

Ejecutando una aplicación de consola

Esto se puede hacer usando solamente MONO, sin embargo en algunos casos las dependencias dentro del código podrían solicitar DLL que no vienen incluidas con MONO y es aquí donde este runtime salva el día, por ahora solo se ejecutara una sencilla aplicación de consola

1 Crear una carpeta donde estará la aplicación

2 Crear un archivo project.json con el siguiente contenido

{
"frameworks": {
"dnx451": {}
}
}

dnx451 es compatible con mono

3 Se crea el archivo donde está el Main de la aplicación.

using System;

class Program
{
static void Main(string[] args)
{
Console.Write("Hola Last Dragon");
Console.Read();
}
}

Con el comando dnu se prepara el runtime para ejecutar la aplicación, dnu lee el archivo project.json y genera otro como salida llamado project.lock.json que le indica dnx como tratar la aplicación contenida en la carpeta.

dnu restore

finalmente se llama a dnx para ejecutar, en el caso de una aplicación tan simple como la del ejemplo es suficiente con dnx run, dnx se encargar de buscar el punto de entrada de la aplicación y no hace falta pasar el archivo fuente C#

dnx run

Hola Last Dragon

Ejecutando aplicaciones ASP 5

Ejecutar ASP 5 es aún más fácil pues la carpeta del proyecto ya viene preparada con todo lo necesario, el mismo Visual Studio crea por si solo el archivo project.json con todos lo necesario para que el dnu restore instale todas las dependencias y con el parámetro web se inicia un proceso de servidor WEB proveído por el mismo dnx y solicitado desde el interior de project.json

dnu restore
dnx web

Al entrar a la aplicación se obtiene algo como esto.

ASP 5 en GNU/Linux
Ver mas grande

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *