Eclipse RAP : Sortie de RAP 1.2 RC1

La Release Candidate de RAP (RAP 1.2 RC1) est disponible depuis hier. Je profite donc de cette occasion pour vous parler de ce projet « évolutionnaire ».
Tout le monde connait Eclipse pour son environnement de développement Eclipse IDE. En effet, Eclipse est historiquement une communauté open source focalisée sur la création et la promotion de cette plateforme de développement Java (étant elle même un don d’IBM). Eclipse IDE possédant une architecture logicielle novatrice, puissante et flexible (plug-ins, workbench et points d’extension …), cette plateforme a rapidement donné naissance à un nouveau type d’applications lourdes appelées RCP (Rich Client Platform). Aujourd’hui, la communauté Eclipse s’est considérablement diversifiée et compte de nombreux projets couvrant un spectre de domaines toujours plus large et dépassant largement le simple cadre d’un outil de développement.

Parmi les nombreux projets intéressants que compte la fondation Eclipse, le projet RAP (Rich Ajax Platform) est l’un des plus prometteurs. Ce projet a en effet pour but de permettre la réalisation d’applications web reposants sur la même architecture que celle des applications RCP. L’intérêt majeur de RAP est ainsi de permettre la factorisation de code commun entre deux applications de natures à priori opposées : Desktop et Web. Il devient alors possible de mettre au point un client lourd et une application web avec un taux de réutilisation de code élevé pouvant atteindre les 90%.
Schématiquement, construire une application RCP consiste à contribuer à des points d’extension et à écrire du code pour créer l’IHM. Le plus souvent, la librairie SWT est utilisée pour coder la partie graphique de l’application. En RAP, le mode de développement et les API restent principalement les mêmes grâce au cousin de SWT : la librairie RWT. En effet, alors qu’SWT représente graphiquement ses composants en utilisant les bibliothèques graphiques natives du système d’exploitation, RWT représente graphiquement ces mêmes composants à l’aide d’une librairie HTML/JavaScript/CSS permettant d’afficher ces mêmes écrans en technologies Web.
Mieux encore, il est possible de créer une application RAP à partir d’une application RCP existante. Pour cela, il faut réutiliser les plugins constituants l’application RCP et changer les contributions à certains points d’extensions (en particulier les points d’entrées qui différent entre une application web et une application client lourd). Il devient alors possible de déployer votre application sur un serveur d’applications (par exemple Tomcat) et d’utiliser votre interface graphique « historique » depuis un simple navigateur Web.
Pour vous donner une idée, voici trois démos RAP :

  • RAP Mail : cette démo n’est autre que l’application mail de démo RCP cuisinée à la sauce RAP.
  • RAP Workbench : cette application met en oeuvre une simple gestion de projet comme dans Eclipse IDE. On constate que l’on retrouve certains mécanismes du framework Eclipse tel que les Perspectives, les Vues, les Editeurs, le « Selection Service »,…
  • Yoxos OnDemand : Yoxos OnDemand est un service permettant de télécharger sa propre version d’Eclipse customisée. Il suffit simplement de sélectionner les plugins à incorporer puis la construction de votre plateforme Eclipse peut commencer.

Depuis sa version 1.1 (Ganymède-2008), le projet RAP a considérablement gagné en maturité grâce notamment aux nombreux retours d’expérience des projets qui l’ont adopté. La version 1.2 prévue courant juin, marque une nouvelle étape en offrant un nombre de fonctionnalités « 100% compatible avec RCP » toujours plus grand ainsi que de nombreuses corrections et améliorations. RAP est donc aujourd’hui plus que jamais une solution très pertinente pour les entreprises souhaitant écrire deux applications (une Desktop et une Web) avec un fort taux de mutualisation du code.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

%d blogueurs aiment cette page :