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. |