Boîte à outils Dojo - Dojo Toolkit

Dojo Toolkit (avant la version 2), Dojo (depuis la version 2)
Logo de la boîte à outils Dojo.svg
Développeur(s) Fondation du Dojo
Première version mars 2005 ; il y a 16 ans ( 2005-03 )
Version stable
7.0.6 / 20 janvier 2021 ; il y a 7 mois ( 2021-01-20 )
Version préliminaire
8.0.0-beta.7 / 27 avril 2021 ; il y a 3 mois ( 2021-04-27 )
Dépôt Boîte à outils Dojo 1.x https://github.com/dojo/dojo
Cadre Dojo 2+ https://github.com/dojo/framework
Écrit en Dojo Tookit 1.x : JavaScript , Dojo >= 2.x : TypeScript
Système opérateur Multiplateforme
Taper Boîte à outils JavaScript (ou bibliothèque )
Licence La licence BSD modifiée ou la licence Academic Free (≥ 2.1)
Site Internet https://dojotoolkit.org , https://dojo.io/

Dojo Toolkit (stylisé comme dōjō toolkit ) est une bibliothèque JavaScript modulaire open source (ou plus précisément une boîte à outils JavaScript ) conçue pour faciliter le développement rapide d' applications et de sites Web multiplateformes, JavaScript/ Ajax . Il a été lancé par Alex Russell, Dylan Schiemann, David Schontzler et d'autres en 2004 et est sous double licence sous la licence BSD modifiée ou Academic Free License (≥ 2.1).

La Fondation Dojo était une organisation à but non lucratif créée dans le but de promouvoir l'adoption de la boîte à outils. En 2016, la fondation a fusionné avec jQuery Foundation pour devenir JS Foundation .

Aperçu

Dojo est un framework JavaScript ciblant les nombreux besoins du développement Web à grande échelle côté client. Par exemple, Dojo fait abstraction des différences entre les divers navigateurs pour fournir des API qui fonctionneront sur chacun d'eux (il peut même s'exécuter sur le serveur sous Node.js ); il établit un cadre pour définir des modules de code et gérer leurs interdépendances ; il fournit des outils de construction pour optimiser JavaScript et CSS, générer de la documentation et des tests unitaires ; il prend en charge l' internationalisation, la localisation et l' accessibilité ; et il fournit une riche suite de classes utilitaires et de widgets d'interface utilisateur couramment nécessaires.

Dojo est entièrement open-source. L'ensemble de la boîte à outils peut être téléchargé au format ZIP et est également hébergé sur le CDN de Google . La boîte à outils comprend environ trois mille modules JavaScript, en plus des images et d'autres ressources.

Le Dojo Toolkit est organisé en plusieurs parties :

  • dojo contient le noyau et la plupart des modules non visuels.
  • dijit est une bibliothèque de modules d'interface utilisateur pour les widgets et la mise en page.
  • dojox contient des modules assortis qui ne sont pas encore considérés comme suffisamment stables pour être inclus dans dojo ou dijit .
  • util inclut des outils de construction tels que l'optimisation, la documentation, la vérification de style et les tests.

Caractéristiques

Widgets

Les widgets Dojo sont des composants - comprenant du code JavaScript , du balisage HTML et des déclarations de style CSS - qui fournissent des fonctionnalités interactives multi-navigateurs (à ne pas confondre avec plusieurs navigateurs ) :

  • Menus , onglets et info - bulles
  • Tableaux triables
  • Graphiques dynamiques
  • dessins vectoriels 2D
  • Effets animés—fondus, volets et diapositives—fonctionnalités pour des effets d'animation personnalisés

Communication asynchrone

Une caractéristique importante des applications Ajax est la communication asynchrone du navigateur avec le serveur : les informations sont échangées et la présentation de la page est mise à jour sans qu'il soit nécessaire de recharger toute la page. Traditionnellement, cela se fait avec l'objet JavaScript XMLHttpRequest . Dojo fournit un wrapper abstrait ( dojo.xhr) autour des implémentations de XMLHttpRequest de divers navigateurs Web, et dojo.ioprend également en charge d'autres transports (tels que les IFrames cachés ) et une variété de formats de données. En utilisant cette approche, il est facile d'avoir les données saisies par un utilisateur dans un formulaire envoyé au serveur "en coulisses" ; le serveur peut alors répondre avec du code JavaScript qui met à jour la présentation de la page.

Système d'emballage

Dojo fournit un système d'emballage pour faciliter le développement modulaire de fonctionnalités dans des packages et sous-packages individuels ; le script Dojo " bootstrap " de base initialise un ensemble d'espaces de noms de packages hiérarchiques — " io ", " event ", etc. — sous un espace de noms racine " dojo " . Après l'initialisation de l'espace de noms racine, tout package Dojo peut être chargé (via XMLHttpRequest ou autre transport similaire) en utilisant les fonctions utilitaires fournies dans le bootstrap. Il est également possible d'initialiser des espaces de noms supplémentaires dans ou parallèlement à l'espace de noms "dojo", permettant des extensions de Dojo ou le développement d'espaces de noms privés gérés par Dojo pour des bibliothèques et des applications tierces.

Les packages Dojo peuvent être constitués de plusieurs fichiers et peuvent spécifier quels fichiers constituent l'ensemble du package. Tout package ou fichier peut également spécifier une dépendance sur d'autres packages ou fichiers ; lorsque le package est chargé, toutes les dépendances qu'il spécifie seront également chargées.

Des solutions de contournement pour le chargement entre domaines de la plupart des packages Dojo sont fournies (bien que cela nécessite une version spécialisée de Dojo).

Dojo fournit également un mécanisme pour créer des « profils » ; le système de construction prend en entrée une liste de packages et utilise Rhino pour créer un seul fichier JavaScript compressé contenant ces packages et toutes leurs dépendances. Cela permet à tout le code nécessaire d'être chargé et initialisé à la fois, et permet la mise en cache du code (la plupart des navigateurs Web ne mettent pas en cache les fichiers chargés via XMLHttpRequest). Des profils prédéfinis pour certains cas d'utilisation courants sont disponibles en téléchargement à partir du même emplacement que la boîte à outils complète.

Stockage de données côté client

En plus de fournir des fonctions de support pour la lecture et l'écriture de cookies , Dojo prenait auparavant en charge une abstraction de stockage local côté client nommée Dojo Storage. Dojo Storage permet aux applications Web de stocker des données côté client, de manière persistante et sécurisée et avec la permission d'un utilisateur. Il fonctionne sur les navigateurs Web existants, notamment Internet Explorer , Firefox et Safari . Lorsqu'il est inclus dans une page Web, Dojo Storage détermine la meilleure méthode de stockage permanent des informations. Sur Firefox 2, il utilise la persistance native du navigateur ; sur d'autres navigateurs, il utilise une applet Flash cachée . Avec Flash 6+ installé sur environ 95 % des ordinateurs connectés au Web, cela rend le mécanisme de stockage accessible à une grande partie de la base installée du Web. Pour une application Web qui est chargée à partir du système de fichiers, c'est-à-dire à partir d'une URL file://, Dojo Storage utilisera de manière transparente XPCOM sur Firefox et ActiveX sur Internet Explorer pour conserver les informations. Le programmeur utilisant Dojo Storage est abstrait du mécanisme de stockage utilisé et est présenté avec une simple abstraction de table de hachage , avec des méthodes telles que put() et get(). Dojo Storage n'est pas pris en charge dans les versions ultérieures à la version 1.3.

Stockage de données côté serveur

Depuis janvier 2007, Dojo inclut les exemples d' implémentations de banque de données côté serveur suivants dans l' espace de noms dojo.data :

  • CsvStore : un magasin en lecture seule qui lit les données tabulaires à partir de fichiers de valeurs séparées par des virgules
  • OpmlStore : un magasin en lecture seule qui lit les données hiérarchiques à partir de fichiers au format OPML
  • YahooStore : un magasin en lecture seule qui récupère les résultats de recherche de Yahoo! Rechercher un service Web
  • DeliciousStore : un magasin en lecture seule qui récupère les signets du service Web del.icio.us
  • RdfStore : un magasin en lecture-écriture qui utilise SPARQL pour communiquer avec les serveurs de données RDF , y compris, par exemple, le serveur d'applications Rhizome RDF.

Prise en charge d'Adobe Integrated Runtime (AIR)

Dojo peut être utilisé dans les applications Adobe AIR basées sur JavaScript . Il a été modifié pour répondre aux exigences de sécurité d'AIR.

SitePen, une société de conseil Dojo, a créé une application Adobe AIR appelée "Dojo Toolbox" à l'aide de Dojo. Il comprend une visionneuse d'API et une interface graphique pour le système de construction de Dojo. Normalement, le système de génération est exécuté à partir de Rhino, mais dans cette application AIR, le système de génération peut être exécuté à partir d'AIR, sans utiliser Java.

Historique des versions

Boîte à outils Dojo

Numéro de version Date de sortie Notes complémentaires
0,1 2005-08-30
0,2 2005-12-14
0,3 2006-05-12
0,4 2006-11-05
0,9 2007-09-14 Réécriture totale.
1,0 2007-11-05 Première version stable.
1.0.1 2007-09-13
1.0.2 2007-09-13
1.1 2008-03-26
1.1.1 2008-05-13
1.2 2008-10-02
1.2.1 2008-11-06
1.2.2 2008-11-16
1.2.3 2008-12-08
1.3.0 2009-03-26
1.3.1 2009-04-30
1.3.2 2009-07-15
1.4.0 2009-12-07
1.4.1 2010-01-25
1.4.2 2010-03-10
1.4.3 2010-05-01
1.4.4 2012-06-22 Version de maintenance qui ajoute la prise en charge d'Internet Explorer 9 et de Firefox 4+.
1.4.5 2010-08-24
1.5.0 2010-07-22 Thème "Claro".
1.5.1 2011-04-12
1.5.2 2012-02-09
1.5.3 2010-08-24
1.6.0 2011-03-15 Prend en charge les attributs de données HTML5 .
1.6.1 2011-05-20
1.6.2 2010-08-24
1.7.0 2011-10-27 Commencez à utiliser l' API AMD ( définition de module asynchrone ).
1.7.1 2011-12-16
1.7.2 2012-02-16
1.7.3 2012-06-22
1.7.4 2012-10-05
1.7.5 2013-06-14
1.8.0 2012-08-15 Refonte documentaire.
1.8.1 2012-10-14
1.8.2 2012-12-12
1.8.3 2012-12-19
1.8.5 2013-06-14
1.8.6 2014-02-20
1.8.9 2014-12-08
1.8.10 2015-01-19
1.9.0 2013-05-01
1.9.1 2013-06-14
1.9.2 2013-12-16
1.9.3 2014-02-20
1.10.0 2014-06-13
1.10.4 2015-01-18
1.12.2 2017-03-05
1.13.0 2017-09-26
1.14.0 2018-08-13
1.15.0 2019-02-16
1.16.0 2019-11-29

Les versions 1.10 à 1.16 continuent de recevoir de nouvelles versions intermédiaires à mesure que des modifications importantes sont rétroportées.

Dojo

Numéro de version Date de sortie Notes complémentaires
2.0 2018-05-02 Tutoriel TypeScript ajouté. Apprentissage rapide. Simplicité. Nom changé de Dojo Toolkit à Dojo 2. Nouveau site Web ajouté. Tutoriel TypeScript ajouté. Passer d'une bibliothèque de sites Web à un cadre pour les applications Web progressives .
3.0 2018-07-27
4.0 2018-10-15
5.0 2019-01-29
6.0 2019-08-28
7.0 2020-06-01

La version 2.0 a été publiée en 2018. La version 2.0 et les versions ultérieures suppriment le mot « boîte à outils » du nom.

des reproches

Chargement

Les versions antérieures de Dojo avaient la réputation d'être encombrantes et lentes à charger. Cela nécessitait également un travail supplémentaire pour charger Dojo sur plusieurs domaines, par exemple à partir d'un CDN . Résoudre ces problèmes était l'objectif principal de Dojo 1.7, qui a introduit la définition de module asynchrone (AMD) et un chargeur "nano".

Documentation

Dojo a longtemps été critiqué pour sa documentation incomplète, dispersée et obsolète. Reconnaissant cela, les développeurs ont apporté d'énormes améliorations à la documentation de la version 1.8, y compris de nouveaux didacticiels, un navigateur API, en remplissant les pièces manquantes et en mettant à jour la plupart des exemples au style AMD .

Un certain nombre de livres ont été écrits sur Dojo, mais tous basés sur Dojo 1.3 ou une version antérieure, maintenant dépassés de plusieurs années. Étant donné que ceux-ci sont antérieurs à la prise en charge d'AMD et à la réorganisation qui l'accompagne, les exemples de ces livres reposent presque invariablement sur des éléments qui sont désormais obsolètes et qui ne sont plus les meilleures pratiques. La plupart des auteurs attendent Dojo 2.0 avant de publier quelque chose de nouveau.

Courbe d'apprentissage

Beaucoup ont commenté que Dojo semble difficile à apprendre et à utiliser, surtout en comparaison avec le jQuery plus populaire .

Le co-créateur du Dojo, Dylan Schiemann, le reconnaît comme une conséquence de leurs différentes portées : « Il est certainement plus facile d'apprendre quelque chose qui est plus petit que quelque chose qui en fait plus, mais nos utilisateurs avides font rapidement remarquer qu'un peu plus d'apprentissage en amont leur permet d'économiser d'innombrables heures pour les choses que Dojo rend faciles."

Stabilité de l'API

Les premiers utilisateurs ont été confrontés à une transition difficile vers la version 1.0 après la réécriture totale de la boîte à outils. Le passage à AMD dans les versions récentes a été tout aussi problématique. Dojo a pris grand soin de maintenir la compatibilité descendante malgré son évolution rapide, avec une grande partie de l'API actuelle obsolète mais toujours maintenue, mais les utilisateurs ont souvent constaté que les mises à niveau ne se sont pas déroulées aussi facilement qu'espéré.

La version Dojo 2.0 a supprimé une grande partie de l'API obsolète et est passée de JavaScript à TypeScript.

Fondation Dojo et mécénat

La Fondation Dojo était une organisation à but non lucratif 501(c)(6) fondée en 2005 pour aider les projets open source. Ses principaux objectifs sont d'aider à l'adoption par les entreprises et d'encourager les projets de la fondation à collaborer les uns avec les autres.

Ses sponsors et membres sont :

La Fondation Dojo aide également les projets suivants en plus de la boîte à outils Dojo :

  • AnimeJ
  • CometD (pour le paradigme de streaming de contenu Comet )
  • DWR
  • IntégrerJS
  • Messagerie rapide
  • Interface générale
  • Grognement
  • Interne
  • Boîte à outils Jed
  • Lo-dash
  • Bureau lucide
  • Maqetta
  • OpenCoWeb
  • Ouvrir l'enregistrement
  • Persévérer
  • Exiger JS
  • Tessel
  • Boîte à outils clin d'œil
  • Zazl

En 2006, IBM et Sun Microsystems ont annoncé un support officiel pour Dojo, y compris des contributions de code. Un rapport Gartner en 2009 a noté qu'IBM prend en charge Dojo sur 30 de leurs produits. Zend Technologies , la société à l'origine du noyau PHP , a annoncé un partenariat avec Dojo en 2008, intégrant la boîte à outils dans le Zend Framework .

En 2016, la Dojo Foundation a fusionné avec jQuery Foundation pour devenir JS Foundation .

Voir également

Les références

Lectures complémentaires

Liens externes