Hoy os voy a hablar de este pequeño framework javascript que lleva poco “tiempo en el mercado”.

¿Duran-qué?

Hace unas semanas necesitaba desarrollar el sitio web de un pequeño proyecto personal.

Para acometer la ardua tarea :), pensé en usar mi pequeño toolkit jQuery, knockout, sammy, require y bootstrap … Poco después de comenzar con el desarrollo, me enteré de la existencia de una librería llamada Durandal, que no reinventaba nada sino que precisamente usaba todas las anteriores librerías que ya conocía y las acoplaba de la forma que estaba buscando. Perfecto!!. Por tanto, comencé de nuevo usando Durandal y tengo que decir que conseguí resultados de forma mucho más rápida de lo que lo hubiera hecho creando toda la infraestructura por mi cuenta.

¿Porqué Durandal?

Qué tiene Durandal que no tengan las millones de librerías MVC, MVVM, MVP que hay por ahí … Pues seguramente nada, pero resulta que está construido sobre otra serie de librerías que conozco más o menos bien y por tanto mi curva de aprendizaje ha sido bastante corta. Si estás en mi situación, conoces estas librerías y estás interesado en crear una aplicación tipo SPA, antes de decidirte a usar los típicos Backbone, AngularJS, EmberJS, etc., echa un ojo a Durandal porque creo que merece la pena.

Con esto no quiero decir que sea mejor que otras, ni mucho menos, sólo hay que ver el seguimiento que tienen AngularJS o EmberJS en Github o la cantidad de trabajos en los que se piden conocimientos de Backbone. Lo que sí digo es que si ya usas el resto de librerías … pues eso, seguro que te va a encantar :).

Durandal es un proyecto relativamente nuevo, pero su comunidad va creciendo y cada vez veo más posts y más entradas en webs como stackoverflow …

¿Para qué sirve principalmente?

Pues el objetivo de Durandal es facilitar un marco de trabajo con el que desarrollar aplicaciones de una sóla página (Single Page Applications). Es posible utilizar nodejs, Visual Studio, … o no utilizar nada ya que es simplemente javascript.

Las principales características que ofrece son enrutado (mediante Sammy), composición de vistas (knockout) y gestión del ciclo de vida de nuestros viewmodels knockout.

La composición de vistas es muy útil y realmente podemos descomponer una página compleja en muchas partes simples. Además, cada vista puede estar asociada a un viewmodel de knockout, con lo que tendremos perfectamente separada toda la lógica de nuestra aplicación de la vista. Por último, la gestión del ciclo de vida entre estos viewmodels y su correspondiente vista es esencial en cualquier aplicación.

¿Como comenzar?

La forma de comenzar es echar un ojo a la documentación del proyecto para hacerse una idea de en qué consiste.

En la página del proyecto, si te lo descargas o bien haces un fork o clone, puedes acceder a una serie de ejemplos de lo que el framework puede hacer por ti. Además, hay disponibles una serie de plantillas para comenzar usando node o bien Visual Studio.

También existe otra plantilla genial de John Papa llamada Hot Towel Template, que se distribuye a través de nuget y que nos da la infraestructura para un proyecto ASP MVC 4 usando Durandal (+ todos sus amigos), la Web API y Breeze js para acceso a datos desde el cliente.

Bueno, para acabar o dejo un enlace para que veais cómo ha quedado la aplicación que he desarrollado con Durandal

Hasta pronto!!