XUL

Un article de Agora2ia.


Sommaire

Présentation

XUL (XML-based User interface Language) est un langage XML de description d'interface utilisateur révolutionnaire. Il permet de concocter en quelques lignes de code des applications qui s’exécuteront dans les navigateurs OpenSource Mozilla ou Mozilla/Firefox.

A ce jour, cinquante millions d'internautes utilisent déjà les navigateurs Mozilla/Firefox et Mozilla. Et ce nombre devrait rapidement grimper avec la sortie officielle, le 9 novembre dernier, de la première version stable de Mozilla/Firefox. Gratuit et leger, ce navigateur OpenSource séduit par ses fonctions avancées et son niveau de sécurité élevé, qui tranche avec les failles de InternetExplorer.

Mais il propose en outre un socle d'exécution de client riche. Ce dernier autorise le déploiement facile des applications aussi sophistiquées qu'un lecteur MP3, une encyclopédie (Hachette Multimédia 2005), ou encore un logiciel de gestion : voir http... pour une liste plus détaillée...

Cette prouesse technique s'appuie sur la couche graphique développée pour Mozilla/Firefox et Mozilla : XUL, qui décrit l'écran d'un client riche à l'aide de balises XML.


Téchnologie émergente mais séduisante

De .Net à Java en passant par Php, Cpp, Perl et Python, il n'est pas un serveur d'application ou un langage qui ne possède son générateur XUL. Des bibliothèques de fonctions créent des applications XUL à la volée côté serveur , en utilisant très peu de ligne de code.

XUL compte cependant de serieux concurrents :

  • XAML, la couhce graphique de LongHorn,
  • Flex de Macromédia,
  • etc...

Mais contrairement à ses rivaux, XUL est déjà éprouvé quotidiennement par des millions de d'utilisateurs de Mozilla et de Firefox", rapppelle TristanNistot, repsonsable Mozilla Europe.

"A l'origine, les développeurs de la fondation Mozilla ont créé ce langage pour garantir la portabilité de leurs logiciels - Mozilla, Firefox et Thunderbird - sur tous les systèmes d'exploitation", poursuit TristanNitot. Avec XUL la logique de création d'un écran s'apparent à celle d'une page web, car il fonctionne avec JavaScript et des FeuillesDeStyle. Ce respect des standards n'est pourtant pas limitatif. Il est par exemple possible de faire une requête vers une base de données d'ou d'appeler des ServiceWeb directement depuis une application, XUL s'exécutant sur un poste client. C'est le cas notamment de MAB (Mozilla Amazon Browser), une interface qui interroge le site Amazon.com à l'aide du protocole SOAP.

Comme la technologie s'avère facile à maitriser, beaucoup d'entreprises s'en sont emparées pour leurs développements. Ainsi, l'éditeur SpeedInfo propose un PGI dont le client repose sur XUL, et le serveur sur PHP.



Un peu de technique

  • ...
  • Dans Mozilla, c'est la même partie de code qui interprete du HTML, du SVG ou du XUL...


Accéder à un fichier XUL

Il y a plusieurs façons d'accéder à un fichier XUL :

  • Classqiuement via http, pour un accès distant, avec les mêmes droits (restrints) que tout autre accès distant http.
  • Via le protocole chrome : les privilèges sont alors accrus (depuis le navigateur on peut par exemple lire un fichier en local).
  • Un accès "local", avec des privilèges élevés : Les mêmes en accès chrome ?

Il faut bien comprendre que cette diféfrence de pouvoir ne vient pas du contenu du fichier (Html ou XUL), mais bien dela façon d'y accéder (http, local ou chrome).


Disponibilité / accéssibilité

sont des composants écrits en XUL, et accéssibles via une url chrome.

Pour rendre fournir du XUL sur un serveur web, il faut :

  • Y déposer le fichier monApplication.xul.
  • Configurer le serveur pour associer le content type Xul à : 'application/vnd.mozilla.xul+xml',

car Mozilla ne se base pas uniquement sur l'extension du fichier pour inetrpréter son contenu.

Les applications XUL peuvent être créée comme des applications standalone (autonomes), ayant leurs propres installeur et executables.

En effet, bien qu'il mette à disposition des librairies Mozilla, il n'est pas obligatoire d'installer un navigateur pour utiliser du XUL : mais la procédure devient alors plus compliquée.


Notion de document

Comparatif

Une technologie simple et éprouvée.

| | Mozilla/XUL | Microsoft/XAML | Macromédia/Flex |Atouts | Toutes technlogies (C++, PHP, Java, C#, etc...) | Couche graphie vectorielle performante. | Outil de développement de qualité. | | Multi-plateforme (Windows, MAc OS X et Linux). | Logique de "code-behind" adaptée à .Net | Nombreux composants graphiques. | | Nombreuses fonctions incorporées en standard. | | Disponible pour tous les navigateurs. | | Eprouvé, gratuit et OpenSource. | | | | Des compétences web suffisent. | | | | Rapidité de développement. | | |Faiblesses | Pas d'outil de développement pointu. | Technologie propriétaire. | Technologie propriétaire. | | Support côté client limité à Mozilla et Firefox | Ne fonctionne qu'avec LongHorn. | Support côté serveur limité à J2EE. | | | Pas disponible avant deux ans. | Coût de la license serveur. |Disponibilité| Immédiate | 2006 | Immédiate

Retours d'experience

Hachette Multimédia

Hachette Multimédia s'est aussi appuyé sur XUL pour créer l'Encyclopédie Hachette Multimédia 2005. "XUL fournit de nombreux composants d'interface homme/machine et, recourant à des technologies déjà maîtrisées par la plupart des développeurs, il n'exige pas de formation spécifique", explique FranckJacob, développeur chez SpeedInfo. Damien Krotkine, chef de projet de la SSII IDM qui a conçu l'Encyclopédie Hachette a, lui, retenu XUL "pour son aspect multi-plateforme (Windows, MAc OS X et Linux), la rapidité de développement par rapport aux technologies concurrentes, et enfin, les nombreuses fonctions incorporées en standard". Frederic Bordage (XUL, la langage de prédilection des clients riches ?, 01 INFORMATIQUE - 05/11/2004).

Thèmes connexes

Firefox : Mozilla - Telecharger.com

Thinlet

Thinlet is a GUI toolkit for Java, designed for really thin clients running on Java 1.1, Personal Java or Personal Basis Profile (MIPD), Applets, as well as full featured stand-alone applications running on J2SE 1.4. It is a fast and flexible alternative to Swing.

  • sur sourceforge
  • Theodore
  • ThinG est un éditeur d'IHM pour Thinlet (v0.1 livrée le 22/11/2004 !).
  • ScriptableThinlet est une extension de Thinlet qui permet d'écrire des actions dans différents langages, directement dans le fichier XUL.

Ressources

  • Projet XUL sur Mozilla.
  • XulFr.org propose un didacticiel ainsi qu'une bonne partie de la documentation des interfaces XUL, XBL et XPCOM en français.
  • Open XUL Alliance est un portail sur la technologie XUL.


Conclusion

Le client riche aurait-il trouvé son maître ?