Je continue aujourd'hui ma série d'articles concernant l'API JavaScript ArcGIS. Un des points forts de cette nouvelle API c'est qu'elle est basée sur le Toolkit Open Source "Dojo". Ce dernier n'étant pas nécessairement connu de tous, je vous propose d'expliquer ce qu'est Dojo et ce qu'il apporte aux utilisateurs de l'API JavaScript ArcGIS.
Qu'est ce que Dojo ?
Dojo est un Toolkit qui vous aide à écrire rapidement du code JavaScript robuste et performant. JavaScript étant un langage qui s'exécute dans les navigateurs, des spécificités liées à chaque navigateur entraîne des légères différences d'interprétation lors de l'exécution. Des Toolkits comme
Dojo,
YUI,
Prototype ou d'autres sont conçus pour faire l'abstraction du navigateur et vous éviter ainsi de gérer vous même leurs particularités parfois subtiles.
Un autre avantage de ces Toolkits c'est qu'il y a souvent en JavaScript plusieurs manières de coder la même fonctionnalité parfois de façon plus ou moins performante. Dojo fournit des fonctions de haut niveau qui permette de coder très rapidement des fonctionnalités de la manière la plus performante et bien souvent avec un nombre très réduit de lignes.
Pourquoi une API JavaScript basée sur le Toolkit Dojo ?
Tout d'abord, les développeurs ESRI qui ont mis au point l'API JavaScript ArcGIS ont utilisés Dojo pour simplifier leur processus de développement (pourquoi réinventer des choses qui existent et qui marchent depuis déjà pas mal de temps ?). Ensuite, utiliser un Toolkit comme de Dojo c'est la garantie que le code vous allez écrire avec l'API JavaScript s'exécutera avec le même comportement dans tous les navigateurs. Par exemple, l'animation de la carte lors d'un déplacement ou d'un zoom utilise Dojo de même que la gestion des couches d'éléments graphiques utilise également Dojo.
Au delà de l'avantage du niveau d'abstraction, Dojo propose une notion très intéressante de widgets appelés
Dijits. Un Dijit est un composant de GUI (Graphic User Interface) développé avec le Toolkit Dojo et très facilement réutilisables dans différentes applications. Par exemple, la barre des niveaux d'échelle (slider) et la fenêtre d'information (InfoWindow) de l'API JavaScript d'ESRI sont des Dijits.
Ci-dessous deux exemples d'applications réalisées avec l'API JavaScript ArcGIS et qui illustrent quelques capacités d'affichage graphique et d'IHM de Dojo.
Que dois-je connaître sur Dojo pour utiliser l'API JavaScript ArcGIS ?
La quantité du Toolkit Dojo que vous utiliserez dépendra en grande partie de vous. En effet, lorsque vous travaillerez avec l'API JavaScript ArcGIS vous devrez connaître qu'un minimum de fonctions:
dojo.require() – Similaire à la balise "script" dans une page HTML classique. Cela permet d'omporter une ressource JavaScript dans la page.
dojo.addOnLoad() - Similaire à la balise "body" et de son événement "onload" . Cela permet d'enregistrer et d'initialiser les blocs dès que la page a fini de se charger et que les dijits ont été initialisés.
dojo.connect() – Similaire aux instructions JavaScript Element.addEventListener et Element.attachEvent. Cela permet d'enregistrer une fonction "listener" qui est àl'écoute d'événements spécifiques sur un élément ou un objet, par exemple la réception d'un résultat du serveur SIG.
dojo.byId() – Similaire à l'instruction JavaScript document.getElementById(id). Cette fonction permet de rechercher et de retourner le premier élément HTML ayant l'identifiant indiqué.
Une fois ces 4 instructions Dojo assimilées, vous pourrez commencer à créer vos propres applications.
Lorsque vous créez une application avec l'API JavaScript ArcGIS, vous pouvez tirer profit de la totalité du Toolkit Dojo comprenant entre autres les contrôles butons, grids, tree views, charts, et d'autres widgets. Le Toolkit Dojo est divisé en trois parties:
- Core - Fonctions essentielles du Toolkit
- Dijit - Composants de GUI "themeable" comme par exemple les composants trees, menus et buttons
- DojoX- Projets d'extension du Toolkit comme les composants graphics, grids, et charts
Comment dois-je récupérer Dojo ? Dois-je l'installer ?
Dojo est inclus dans l'API JavaScript ArcGIS. Lorsque vous référencez l'API JavaScript ArcGIS vous référencez également la totalité du Toolkit Dojo. Les versions du Toolkit Dojo évoluent en même temps que les versions de l'API JavaScript. La version actuelle est 1.2 pour Dojo et 1.2 pour l'API JavaScript.
Il n'y a donc pas besoin de télécharger les librairies du Toolkit Dojo (ni celle de l'API JavaScript) pour les utiliser. Elles sont accessibles via les serveurs ArcGIS Online d'ESRI. Dans certains cas bien particuliers, les utilisateurs d'ArcGIS Server peuvent faire une demande pour disposer de la totalité des librairies sur un DVD afin de les utiliser localement. Ce n'est cependant pas la configuration recommandée par ESRI.
Comment obtenir de l'aide sur Dojo?
Le site Web de Dojo, http://www.dojotoolkit.org/ contient la documentation officielle du Toolkit. Différents ouvrages existent sur Dojo et décrivent encore plus en détails les pratiques du développement avec ce Toolkit. Enfin vous trouverez peut être également de nombreuses réponses sur les forums Dojo forums.
Est-ce que le Web ADF d'ArcGIS Server utilise Dojo?
En 9.3, le Web Application Developer Framework (Web ADF) .Net contient une librairie JavaScript qui ne doit pas être confondue avec l'API JavaScript ArcGIS. Cette librairie dédiée au fonctionnement du Web ADF est basée sur les librairies JavaScripts ASP .Net AJAX et n'a aucun rapport avec Dojo.
A bientôt pour la suite …