JuanCri.com

domingo 19 de febrero, 2012 a las 16:51

Manos es un framework para desarrollar aplicaciones web de forma simple. La idea está basada en proyectos como node.js donde un mismo hilo es capaz de manejar varios requests al mismao tiempo utilizando callbacks para las operaciones que requeren esperar por una respuesta, típicamente operaciones de IO, bases de datos, etc. Pueden leer el manifiesto aquí.

Hoy estuve haciendo algunas pruebas y al no encontrar un how-to actualizado, decidí publicar aquí los pasos que utilicé para echar a andar una aplicación "Hola Mundo":

1.- Dependencias

Suponemos que el sistema tiene instalado mono y dmcs (lo probé con Mono 2.10.6.1). En mi caso, tengo distintas instalaciones de mono (por ejemplo, en /opt/mono-2.10.6.1). Para hacer esto, pueden obtener más información aquí.

Además, necesitamos tener instalado libev. En mi caso, corriendo Ubuntu 11.10, ejecuté:

sudo apt-get install libev4 libev-dev

2.- Descargar, compilar e instalar:

Se ejecutan las siguientes instrucciones:

# Descargar
git clone git://github.com/jacksonh/manos

# Compilar
cd manos
./autogen.sh --prefix=DIRECTORIOINSTALACION # Por ejemplo /opt/mono-2.10.6.1
make

# Instalar
make install

3.- Crear una aplicación

Para crear una aplicación llamada "test", ejecutamos:

manos --init test

Esto crea una directorio test con dos archivos dentro: StaticContentModule.cs y test.cs.

4.- Editar la aplicación

Editamos test.cs y dentro del constructor de test dejamos sólo está línea:

Get ("/", ctx => ctx.Response.End ("Hola mundo!"));

5.- Compilar la aplicación

Dentro del directorio test, ejecutamos:

dmcs -target:library -out:test.dll test.cs -r:DIRECTORIOINSTALACION/lib/manos/Manos.dll

Cabe destacar que, como en el paso anterior eliminamos la referencia a la clase StaticContentModule, no necesitamos incluirla en la compilación.

6.- Lanzamos la aplicación

Dentro del directorio test, ejecutamos:

manos --server

7.- Abrimos el navegador en http://localhost:8080/

Eso es todo. Espero que les sirva.

Creative Commons License
Blog JuanCri.com por Juan Cristóbal Olivares licenciado bajo la Creative Commons Attribution 2.0 Chile License.
Mono PostgreSQL

JuanCri.com