TUTORIEL XML 
Les technologies multiplate-forme de XUL
XUL n'a pas pour seul but de créer des interfaces au sein du navigateur de Mozilla, mais peut servir d'architecture pour construire de véritables applications portables. (07/05/2004)

Nous avions déjà abordé XUL lors de deux courts articles, "A la découverte de XUL" et "XUL: les évènements". Nous voulions y montrer combien le développement d'interfaces construites en utilisant Gecko/NGLayout (le moteur d'affichage de Mozilla, entre autres) peut être facile et rapide, avec seulement le dialecte XUL pour la structure, CSS pour la mise en forme et JavaScript pour la gestion des évènements (le tout étant joints au sein de l'appellation XPFE, pour Cross-Platform Front End).

Il reste que ces articles semblent limiter l'utilisation de XUL à Mozilla seul : construire une application réellement portable requerrait d'avoir installé le navigateur, ce rendait le tout guère plus intéressant que de construire une application Web.
Cette limitation n'existe en fait pas, car les composants XPCOM et XPConnect permettent d'utiliser JavaScript pour accéder à des bibliothèques C/C++ depuis l'application XUL, permettant au final de créer des applications totalement indépendantes et cross-plateform; Mozilla en est le premier exemple, étant intégralement construit sur ces standards et XPCOM/XPConnect. Ainsi, à partir du moment où Mozilla existe sur un système, la plupart des applications construites sur le même modèle que Mozilla pourront elles-aussi fonctionner.

XPCOM
La pièce centrale de ce puzzle est XPCOM, dont le nom rappelle sans ambiguïté la technologie COM de Microsoft à ceux qui la connaissent.
Le COM (Component Object Model), ou Modèle d'Objet Composant, cherchait à simplifier l'intégration de logiciels au monde Windows, notamment grâce à leurs interfaces accessibles depuis les applications.
XPCOM (XP signifie "cross platform") n'est pas lié à un langage précis, tout comme COM, mais n'est pas non plus lié à une plateforme. XPCOM est une architecture open-source de développement multiplateforme et modulaire, utilisant une série de bibliothèque interne pour gérer des composants. Tout système pouvant compiler du C/C++ dispose déjà d'une implémentation de cette architecture : Windows, Linux, Mac OS, de nombreux UNIX...
Cette technologie ne vient pas de nulle part : elle a été développée par les équipes de Netscape au sein du projet open-source Mozilla, puis rendue indépendante tant les possibilités qu'elle offre sont grandes.
XPCOM fournit ainsi au développeur un bon nombre de composants lui permettant de dépasser le simple cadre de JavaScript et ses limitations : accès direct à une base de données SQL (comme MySQL), connexions FTP/HTTP, services Web avec SOAP, recherche textuelle au sein d'un document, gestion compète de cookies, des polices...

XPConnect
Cette pièce peut être simplement décrite comme la "glue" permettant de relier JavaScript aux composants XPCOM disponibles, afin de les manipuler de manière transparente. JavaScript n'est qu'un des langages pouvant être utilisé pour atteindre XPCOM depuis XPConnect (on peut utiliser Python avec PyConnect par exemple), et est celui choisi par Mozilla.

XBL
La dernière pièce du puzzle est le Extensible Binding Language (pour langage extensible de liaison), un autre dialecte XML servant à décrire les relations pouvant être attachées à d'autres documents, à l'aide d'une CSS ou du DOM. Utilisé avec XUL, il permet d'ajouter des comportements spécifiques à certains composants, et créer des éléments d'interface réutilisables (par exemple le bouton Précédent de Mozilla, avec un menu déroulant).
XBL peut être comparé à XSLT, à la différence que XSLT ne peut travailler que sur un document statique, tandis que XBL peut agir à la volée sur les éléments du DOM.

  Forum

Réagissez dans les forums de JDN Développeurs

Deux technologies semblaient évidentes aux développeurs voulant programmer pour le plus grand nombre de plate-formes : Java, et plus récemment Flash. Le succès de Mozilla prouve que la troisième solution, basée autour de XUL et XPCOM, est plus que viable. Il ne lui manque qu'un meilleur support... et des éditeurs graphiques.
Ce n'est pas sans raison que Microsoft a décidé de placer nombre de ses espoirs XAML (sa version de XUL) pour la prochaine version de Windows : créer des structures d'interface à partir d'XML est la prochaine étape du développement rapide. XUL est aujourd'hui fonctionnel (preuve en est : Mozilla et consorts), tandis que XAML arrivera avec le nouveau Windows, donc vers 2007. Qui des deux l'emportera ?

Nous tenterons dans un prochain article de lier une application XUL à XPCOM via XPConnect.
 
Xavier Borderie, JDN Développeurs
 
Accueil | Haut de page