Dojo Toolkit
Dojo est un framework (cadriciel) open source en JavaScript. Son but est le développement rapide d'applications en Javascript exécutées côté client et communiquant avec le serveur avec une granularité inférieure à la page grâce à Ajax. Dojo est sous double licence et peut donc être obtenu soit selon les termes de la licence BSD, soit sous ceux de l'Academic Free License.
Actuellement le framework Dojo est disponible en version 1.1.1 (en date du ).
Système de paquetage
Dojo fournit un système de paquetage conçu pour faciliter la séparation des fonctionnalités en paquetages et sous-paquetages individuels. Le script de base pour le bootstrap de Dojo initialise un espace de nom hiérarchique appelé "dojo". Après son initialisation, une fonction utilitaire peut charger tout paquetage via XMLHttpRequest ou un autre système de transport de données. Pour le code développé avec Dojo, on peut initialiser des espaces de noms parallèles à "dojo".
Les paquetages peuvent être constitués de multiples fichiers et peuvent spécifier quels fichiers constituent un paquetage entier. Chaque paquetage ou fichier peut spécifier des dépendances vis à vis d'autres paquetages ou fichiers qui seront chargés automatiquement.
Dojo fournit aussi un mécanisme pour construire des "profils". Le système de construction prend en entrée une liste de paquetages et utilise Apache Ant pour créer un seul fichier JavaScript compressé contenant tous ces paquetages et leur dépendance. Cela permet à tout le code nécessaire d'être chargé et initialisé en une fois et permet de cacher le code (la plupart des butineurs - navigateurs Web - ne chargent pas en mémoire cache les fichier obtenus par XMLHttpRequest). Des "profils" préfabriqués pour différents cas courants d'utilisation sont disponibles à la même adresse que la totalité du cadriciel Dojo.
Survol des fonctionnalités de Dojo
Au delà du système de paquetage, voici les fonctionnalités les plus notables de Dojo :
- Des contournements pour le chargement inter-domaines de la plupart des paquetages de Dojo (bien que cela requiert une construction spéciale de Dojo; une telle construction est hébergée par AOL).
- Un système évènementiel qui permet au code d'être marqué pour l'exécution non seulement pour les évènements DOM mais pour des évènements arbitraires tels que les appels à une fonction particulière. Cela permet une utilisation plus robuste de la programmation orientée aspect qu'il n'est typique en JavaScript.
- Un système de widgets qui permet la création de composants réutilisables complexes, et propose de nombreux widgets préfabriqués (par exemple , un sélectionneur de dates fondé sur un calendrier, et un éditeur de texte riche).
- Un wrapper au dessus des différentes implantations de XMLHttpRequest, qui permet d'utiliser divers systèmes de transport de données et de formats de données et de s'abstraire autant que possible des variations entre butineurs.
- Un bibliothèque d'animations, incluant à la fois des effets d'animation pré-construits et des possibilités de construire soi-même des effets.
- Une bibliothèque d'utilitaires de manipulation du DOM.
- Des utilitaires pour la manipulation des classes JavaScript .
- Abstraction de l'environnement d'exécution, Dojo permet de détecter et de gérer les différences entre les différents butineurs et environnements d'exécution tels que Rhino et SpiderMonkey pour Mozilla et Firefox.
Patronage
IBM[1] et Sun Microsystems[2] ont annoncé un support officiel de Dojo, dont des contributions de code. Un autre élément important du patronage fait autour de Dojo est la Foundation Dojo à laquelle contribuent de nombreuses sociétés et d'autres projets Open Source comme Open Lazlo.
Critiques
Une critique commune est l'absence de documentation complète. Malgré des efforts pour combler cette lacune, la critique est toujours valable en octobre 2006. L'équipe de Dojo a réagi à cette critique, ainsi depuis novembre 2006 l'effort a été porté sur la documentation en ligne et a vu le jour d'une aide accrue encore en perfectionnement. De plus, l'activité de Dojo étant importante, de nombreuses informations sont disponibles dans leur lettre de diffusion, qui demeure extrêmement active.