Aujourd’hui, les applications web tendent vers les ergonomies des sites classiques et offrent un nombre croissant de fonctionnalités et de services aux utilisateurs. Paradoxalement, leur conception devient de plus en plus complexe, en particulier sur les plate-formes de référence actuelles. Ce blog se propose d’aborder des alternatives aux solutions traditionnelles, basées sur l’innovation et la simplicité, et qui permettent d’associer Qualité et Productivité. Fabien Le Hoan.

jeudi 30 novembre 2006
Introduction à Ruby on Rails

Abstract

This post summarizes the main advantages of the RoR framework, and presents some differences with the LeeBeLLuL framework (described in my first post on this blog). For memory, LeeBeLLuL is a RIA framework based on rapid developpement applications, in iteratives cycles and involving final users from the beginning. Off course this type of framework is 'Web 2.0 ready' and include Ajax functions and scripting language (IronPython).
Résumé

Cet article résume les principaux avantages du framework RoR, ses limitations actuelles au niveau français et un comparatif avec le framework LeeBeLLuL (présenté dans mon premier article).
Introduction

RoR est la combinaison orientée applications web du langage Ruby et du framework open source Rails. Ruby est un pur langage de scripting orienté objet apparu au Japon au début des années 1990. Rails est un framework dans le but d’accroître la productivité des développements d’applications web tout en respectant le modèle MVC (Model View Controller) dans sa totalité.

Il existe aujourd’hui de très bon supports pour aborder RoR :
http://mordeletj.free.fr/RoR/synthese_RoR.pdf (une excellente synthèse en français)
http://www.railsfrance.org (le portail français de RoR)
http://www.rubyonrails.org/ (la bible RoR, d’où vous pourrez accéder à de très bons tutoriaux dont les fameux ‘Rolling with Ruby on Rails’ et ‘Four days on Rails’).

Avantages principaux

- Framework MVC (en natif)
- Open source
- Moins de code (= moins de maintenance).
- ‘Scaffolding’ (échaffaudage) : le framework permet d’effectuer un ensemble d’opérations CRUD (Create, Retrieve, Update, Delete) en une fois, pour éventuellement les compléter par la suite.
- Support des principales BDD .
- Adressage des URLs.
- Intégration des tests unitaires (génération d’actions et de composants testables).
- Mapping automatique (apport très important en terme de réduction de code !!).
- Règles de validation intégrées.
- Gestion des tempates (pour les vues).
- Intégration d’AJAX (bibliothèque Prototype pour l’instant).
- Fiabilité éprouvée (mise en place sur des sites à fort traffic aux Etats-Unis).
Quelques inconvénients (au niveau hexagonal) …

- L’hébergement (pas d’hébergeur français).
- Framework ‘jeune’ (manque de recul pour une DSI).
- Implantation laborieuse en France (très peu de SSII vendent du ‘RoR’).
Références

La référence incontournable de RoR est bien entendu 37signals, qui propose 5 applications développées avec RoR :

http://
www.37signals.com

Mais d’autres sociétés commencent à s’implanter, à l’image de new bamboo :

http://new-bamboo.co.uk/



Quelques différences avec le framework LeeBeLLuL

La première différence se situe au niveau du langage de scripting : Ruby pour RoR et IronPython pour LeeBeLLuL. A noter qu’IronPython a été retenu par Microsoft et Ruby par IBM (.Net vs Java bis ?).

Au niveau de l’utilisation, ces 2 frameworks sont bien entendus RAD et MVC, mais la principale différence (et sans aborder les détails techniques) est qu’une application RoR se construit d’après le modèle de données et une application LeeBeLLuL se construit par l’IHM.

Les deux approches sont excellentes et in fine l’esprit ‘agile’ est respecté mais LeeBeLLuL me semble plus accessible, car la seule partie ‘technique’ de l’application est limité au codage des services (les données xml découlent directement de l’IHM).

Fabien Le Hoan.

Libellés : , , , , ,