Clients Riches

avec

XUL

et les technologies Mozilla

Laurent Jouanneau

laurent.jouanneau@disruptive-innovations.com

AFUP - 2 Mars 2006

Ce document est distribué sous la licence Creative Commons, Paternité - Partage des Conditions Initiales à l'Identique 2.0

http://creativecommons.org/licenses/by-sa/2.0/fr/

Sommaire

Présentation de Mozilla

Les technologies Mozilla

Architectures d'une application XUL

Chapitre 1

Présentation de Mozilla

Mozilla

Premiers navigateurs : Viola, Mosaic, Netscape..

IE en 1995

1997 : Déclin de Netscape

1998 : libération du code de Netscape = Mozilla

5 Juin 2002 : version 1.0 de la suite Mozillla

Naissance de XUL

Décision : Réécrire Gecko from scratch

Problématique : minimiser les temps de dev et support multi-plateforme

Gecko :

Affichage des pages web

Affichage de l'interface

-> naissance de XUL

La plateforme Mozilla

Framework pour développer des applications desktop et web

Diverses technologies en fonction des besoins

Des technologies standardisés (sauf XUL)

Interface

Comportement

Données

Architecture Mozilla

Gecko

XBL

XUL

CSS

Javascript 1.6

+ E4X

Composants XPCOM (C++, JS..)

XPCONNECT

RDF

NSPR

Affichage

Réseau

Fichiers

GFX/Cairo

XHTML

SVG

DOM

PNG, JPG, ...

MathML

Plateforme mozilla

Éléments de l'application

XForms

Template XUL

Bases SQL

Python (2007)

MozStorage

Chapitre 2

Les technologies Mozilla

XUL

XML

Décrit une interface utilisateur

Chaque balise = un élément UI

Modèle de boite type Motif

Design avec CSS

Même utilisation qu'en HTML

Thèmes

CSS 2, CSS 2.1, CSS 3, CSS moz

Javascript

Définir le comportement

Objets natifs :

DOM

web service

Xml, Xsl, Xpath

...

Utilisation d'objets XPCOM

E4X : le simple_xml de Ecmascript

Génération de contenu

Template XUL = ce qu'il faut générer

RDF : format source de données

Génération dynamique

Remplace processus type Ajax dans certain cas

XBL

Widgets personnalisés, basés sur d'autres éléments

Réutilisables

possibilités d'héritage

Portables

Définition d'un contenu, de propriétés, de méthodes, de gestionnaires d'évènements

Interface extensible

Overlays

Point clé des extensions

Modifications d'interfaces sans modification du XUL d'origine

La seule API à connaître pour modifier une interface : le fichier XUL d'origine

Localisation

Faisable dans les clients installés en local.

Par des fichiers DTD (déclaration d'entités)

Par des fichiers properties

Sélection automatique des fichiers DTD et properties en fonction de la langue configurée

Formulaires

Pas de formulaire XUL

Sauf recours à js+xmlhttprequest

Utilisation de composants xbl

Formulaires XHTML

Les supers formulaires : Xforms

Services web

SOAP

XML-RPC

Xmlhttprequest -> format libre (json-rpc, wddx ...)

-> Ajax, c'est possible

XPCOM

Équivalent à COM de MS

Traitements « metiers », « techniques »...

API du Framework mozilla = ensemble d'XPCOM

Programmé en C++, Javascript, Python, Java...

Implémention d'interfaces (IDL)

Divers services :

Son

Réseau

gérer le drag'n drop

accéder aux fichiers, lire le RDF..

gérer les signets, les cookies

etc..

Autres...

XHTML

SVG

Canvas

MathML

PNG, GIF...

Plugins

XTF...

Chapitre 3

Architectures

d'une application XUL

Application PHP

Architecture traditionnelle

Serveur

http

HTML, CSS, JS

Contenus formulaires,

requête affichage de page

Traitements

Métiers

Base de données

Génération

des pages HTML

Client léger pauvre traditionnel

Application PHP

Architecture traditionnelle

Serveur

http

XUL, CSS, JS

Contenus formulaires,

requête affichage de page

Traitements

Métiers

Base de données

Génération

des pages XUL

Client léger Riche traditionnel

Architecture Services Web

Application PHP

Serveur

http

XUL, CSS, JS

requêtes affichage d'écran

Traitements

Métiers

Base de données

Génération

des écrans XUL

ou XUL statique

Services

web

Appels de services web pour gérer les données affichées

Client léger Riche

Applications Web avec XUL

Meilleure ergonomie

Client léger mais "riche"

Moins de scripting qu'en HTML

Plus rapide à développer qu'en HTML

Rien à installer sur le poste client

Utilisation des web services = Déplacement de la logique applicative coté client

Séparation plus nette entre interface et traitements métiers -> ajax, templates XUL..

Client riche lourd

Partie cliente installée en local

XulRunner

Extensions pour Firefox, Thunderbird...

Appli standalone (compilée avec les sources de Mozilla)

Avantages :

Privilèges sur le poste utilisateur (accés disque...)

Meilleure ergonomie (drag and drop ...)

Disponibilité

Liens

http://www.xulfr.org

http://developer.mozilla.org et http://www.xulplanet.com : doc de référence

http://www.mozdev.org : applications et extensions mozilla

FIN

2004-04-12T10:01:49