Ce framework JavaScript MV* est le successeur du framework Durandal
Il y a quelques mois encore, Rob Eisenberg faisait partie de l'équipe de développement d'Angular. Il a ensuite décidé de la quitter pour travailler sur son propre framework au sein de sa startup Durandal. Le résultat est maintenant dévoilé en preview et porte le doux nom d'Aurelia. Son créateur le décrit comme un framework de la prochaine génération, successeur de Durandal, le framework qu'avait déjà créé la boîte du même nom. On ne pourra toutefois pas s'empêcher de le comparer à la future branche 2.0 d'AngularJS avec laquelle il partage beaucoup de fonctionnalités et d'ambitions communes.
Aurelia est un framework JavaScript client de type MV* (Model, View, et ce que vous voulez pour relier les deux), gratuit et open-source, écrit avec les dernières spécifications EcmaScript 6 et 7 (noté ES6/7 et encore à l'étude, rappelons-le). Le code est transpilé en ES5 et des polyfills sont ajoutés afin de garantir son support sur tous les navigateurs modernes. Il s'accomode très bien avec TypeScript, CoffeeScript ou AtScript selon son auteur.
Le framework ne nécessite pas de dépendances et s'avère très modulaire, décomposé en différents composants indépendants et relativement simples. Il est donc possible de n'utiliser qu'une partie du framework, parfois même en dehors du périmètre initial d'Aurelia (le module d'injection de dépendances sur un environnement Node.js par exemple).
Parmi sa longue liste de fonctionnalités, on peut citer :
- un data-binding adaptatif très complet, avec deux fallbacks possibles (Object.observe en ES6, getter/setters en ES5 ou dirty checking en dernier recours pour le reste des navigateurs) ;
- une forte intégration des Web Components au sein des templates ;
- une notion de "comportements liés" permettant d'étendre les fonctions d'éléments HTML existants ;
- un routeur client avancé qui est une amélioration de celui de Durandal 2 ;
- un mécanisme d'injection de dépendances combiné à l'utilisation des modules ES6 ;
- de la génération à la volée de modèles, vues et contrôleurs en fonction de données reçues à l'exécution.
http://vimeo.com/117778145
Eisenberg insiste sur la vision à long terme de ce framework qui sera soutenu par l'équipe de Durandal et une communauté qu'il espère grandissante. Au vu des choix techniques ayant été faits, en particulier ES6/7, Aurelia devrait montrer tout son potentiel dans les cinq années à venir tout en restant fonctionnel et éprouvé sur les navigateurs plus anciens.
Le site d'Aurelia.
Et vous ?
Que pensez-vous des choix faits par ce framework ?
Pensez-vous que ce framework puisse concurrencer Angular ?
Songez-vous à essayer Aurelia dans un futur projet ?