
He de reconocer que me gustan los gestores de tareas, me imagino que será por lo mal que gestiono yo las mías. He probado muchos de los disponibles en el mercado y además quería hacer mi propia solución. Han sido varios intentos (MVCTask usando Azure, MetroTask para Windows 8, otro cliente por línea de comandos), pero creo que esta es la buena.
Las bases
La idea para desarrollar la aplicación era la siguiente:
- Debía de ser simple
- Debía de ser visualmente atractiva
- Debía de resolver un problema
La idea era simple: Una práctica está dividida en varias tareas, y las tareas pueden tener dos estados, completada y sin completar. El porcentaje de terminación de una práctica está definido por el cociente entre las prácticas completadas dividido entre las prácticas totales.
Además, cada práctica estará enlazada a una persona concreta, de tal manera que yo solamente tenga acceso a las mías y no a las del resto de la gente (por aquello de la seguridad y tal).
Bajo el capó
Con esas tres premisas abrí Visual Studio y empecé un proyecto de nombre PracticasManager, ya que en un principio el proyecto va destinado a gestión de prácticas en la universidad.
Para realizar el proyecto me basé en la última versión de ASP.net MVC, la 4 que se encuentra en estos momentos en su fase de Developer Preview, ya que quería probar ciertas capacidades relativas al uso como aplicación móvil. El lenguaje de programación es C# y la interfaz para la creación de la aplicación es Razor.
El sistema ORM para el mapeo desde los objetos hasta la base de datos no podía ser otro que Entity Framework, usando el método Code-First, que permite definir nuestros objetos usando POCO (Plain Old C# object) y que las tablas de la base de datos se generen automáticamente.
La base de datos está gestionada por un SQL Server 2008 R2 que proporciona el proveedor del alojamiento.
Una cara bonita
Para la interfaz gráfica he usado Twitter Bootstrap, un conjunto de plantillas CSS y Javascript que permiten a los desarrolladores que no sabemos combinar colores que salga una interfaz decente. Finalmente la barra de progreso está creada con JQuery UI.

También para móviles
Otra de las cosas que quería probar era el comportamiento de la aplicación en un móvil, así que usando las nuevas características de ASP.net MVC4, jQuery Mobile (y algun que otro paquete de nuget), pude implementar una interfaz básica de la aplicación para dispositivos móviles.

Alojamiento
Para el alojamiento decidí buscar algo diferente, tras probar Azure para otros proyectos (muy potente, y muy escalable, pero muy complejo para las necesidades de este proyecto) descubrí AppHarbor, un sistema de despliegue en la nube basado en Git (como Heroku, el sistema de despliegue preferido de las aplicaciones Ruby on Rails), completamente gratuito (para proyectos pequeños) y muy fácil de usar. La experiencia ha sido muy gratificante y recomiendo probarlo aunque sea con proyectos muy pequeños.

Conclusiones
Este proyecto me ha servido para poder lanzar una solución funcional para un problema concreto, así como la ocasión de probar tecnologías que no había visto hasta ahora, como JQuery Mobile, Bootstrap, el despliegue en AppHarbor entre otros.
Te animo a que la pruebes, está en una fase bastante experimental, así que puedes encontrar algún que otro fallo. Tanto si te gusta como si no, dejame un comentario y sabré qué puedo mejorar.
Enlace: Half todo en AppHarbor