Tags:
create new tag
, view all tags

Xul

Introduction

Xul (XML-based User interface Language) est un langage de description d'interfaces graphiques fondé sur le XML et créé dans le cadre du projet Mozilla. XUL comprend un ensemble de balises permettant de définir tous les éléments d'une véritable interface utilisateur riche : des boutons, des listes, des menus, des zones d'édition, etc. De plus, il est possible de définir ses propres balises pour mettre en place des composants complexes et réutilisables en écrivant un fichier XBL (eXtensible Binding Language). Celui-ci comporte, pour chaque nouveau composant qu'il décrit, plusieurs parties :

  • une partie décrivant l'aspect graphique du composant
  • plusieurs parties décrivant son comportement, sous la forme de fonctions Javascript

Les bindings ainsi définis peuvent hériter les uns des autres, et surcharger leurs contenus ou comportements.


Compatibilités

Initialement, XUL a été développé afin de faciliter la création de l'interface graphique du navigateur web Mozilla. Un moteur XUL est intégré au moteur Gecko de Mozilla, ce qui permet l'exécution de code XUL directement dans le navigateur, mais cela nécessite de posséder un navigateur utilisant le moteur Gecko dont les plus populaires sont Firefox, SeaMonkey, Netscape.

Actuellement, Mozilla développe XULRunner, qui permet d'exécuter des applications XUL sans Mozilla ou Firefox, directement sur le bureau (compatible Windows, Linux, MacOS X). Par cet intermédiaire, il est possible (avec le téléchargement d'un patch en plus) d'utiliser le moteur Gecko en tant que composant ActiveX dans Internet Explorer.


Outils de développement

Un simple éditeur de texte est suffisant pour écrire du code XUL et Javascript, mais il existe quelques outils qui permettent d'améliorer le développement :

  • XULBooster : plugin Eclipse qui permet d'éditer du XUL. Il comprend entre autre un navigateur de widget, la coloration syntaxique.

  • Spket : disponible en IDE à part entière ou en plugin Eclipse. Il permet d'éditer du code XML dont XUL (prend en charge 97% du langage).

  • JSEclipse : un plugin Eclipse permettant d'éditer facilement du code Javascript.

  • XULDev est un projet d'IDE (uniquement sous Windows pour le moment) qui permettrait de créer une interface graphique en XUL pour n'importe quel langage.


Principe de fonctionnement

Le développement d'une application XUL se rapproche du développement d'une application cliente ou client/serveur traditionnelle. À chaque objet graphique sont associés des événements (clic de souris, double-clic, etc) pour lesquels le développeur doit écrire du code (typiquement en Javascript) à exécuter par la machine cliente. L'application peut récupérer des données d'un serveur, par exemple via des requêtes HTTP. Côté serveur, de nombreux langages peuvent être utilisés pour « motoriser » une application Xul : Java, ASP, C#, Perl, Python, Php, etc.

XUL facilite la mise au point d'une interface plus évoluée que HTML sur le plan technique, car les objets XUL peuvent se manipuler via une interface DOM, comme en DHTML, ou encore être associés à des feuilles de styles CSS. De plus une interface XUL peut récupérer d'un serveur les seules données nécessaires à la mise à jour d'un élément de la page et non l'ensemble de la page elle-même; ces données peuvent être récupérées en XML et de manière asynchrone, ce qui permet d'utiliser la méthode AJAX. Ces techniques permettent d'améliorer considérablement les temps de réponse et le confort de l'utilisateur. L'environnement XUL les utilise de manière transparente pour l'utilisateur dans le système de templates (modèles de page) qui permet de générer une partie de l'interface utilisateur à partir de données externes en RDF1, sans avoir à écrire une ligne de code Javascript. XUL peut également exploiter et interagir avec les diverses ressources de Mozilla comme le SVG2.

RDF1 : (Ressource Description Framework) est un modèle destiné à décrire de façon formelle des ressources web de façon à permettre le traitement automatique de ces descriptions.

SVG2 : (Scalable Vector Graphics) est un format de données basé sur le XML conçu pour décrire des ensembles de graphiques vectoriels.


Ses avantages

  • Utilisation d'une syntaxe proche du XML
  • Utilisation de Javascript (standard Ecma)
  • Utilisation de plusieurs langages possibles côté serveur
  • Richesse des composants
  • Ne dépend pas de la plateforme
  • Le même code s'exécute de la même manière dans et hors du navigateur
  • Supporte SOAP et XML-RPC
  • Supporte un ensemble de technologies standardisées par le W3C (CSS, RDF, XBL, XML)
  • Richesses des interactions avec l'utilisateur
  • Utilisation conjointe avec AJAX


Ses inconvénients

  • Pas multi-navigateurs
  • Communauté peu active
  • Nécessite la connaissance de plusieurs langages
  • Environnements de développement pas encore très évolués


Exemples


Liens utiles


Sources

  • http://fr.wikipedia.org/wiki/XML-based_User_interface_Language
  • http://xulfr.org/wiki/ApplisWeb/ExemplePhpRdf
  • http://xulfr.org/xulplanet/xultu/
  • http://www.fiatxul.fr/
  • http://www.xulplanet.com/
  • http://ljouanneau.com/blog/XUL


Topic revision: r2 - 2008-04-21 - CedricCapoulun
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback