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.