Attività fisica per il 2012? Dojo!

Come è noto, a chi segue i prodotti Server di ESRI, dalla versione 9.31 sono
state introdotte delle API per la costruzione veloce e facile di Web GIS Application.
Le tecnologie includono Javascript, Flex e Silverlight oltre alle più classiche
ADF per Java e .Net.
Flex e SilverLight permettono di avere una UserExperience a livello di applicazione
desktop, ma alcune volte, per politiche aziendali, non è possibile installare plugin
e quindi si rende necessario l’uso di Javascript. Javascript è un linguaggio
estremamente potente e semplice da usare e su cui sono stati costruiti diversi
framework. In questo articolo faremo uso del framework Dojo. Come si vedrà le API
ESRI per Javascript e il Framework Dojo sono fortemente integrate.
I componenti Dojo
E’ possibile identificare 4 progetti principali Dojo
- Dojo Base and core;
- Dijit;
- Dojox;
- Util;
Dojo Base, che è la base di tutto, fornisce il linguaggio e le utilities Ajax per aggiungere risorse Dojo “al volo” ed altre funzionalità di basso livello.
Dojo core: si occupa di gestire funzioni come permettere le interrogazioni DOM, remote scripting, drag and drop
localizzazione ed internazionalizzazione, integrazione con Firebug, e nota
più importante gestire le differenze tra i browser, nota molto dolente nello sviluppo
con javascript ed HTML.
DJit include 40 HTML user Interface Widgets, includendo: bottoni, text box, color picker, slider, etc… Con un CSS di default di nome Tundra, che naturalmente può essere riscritto.
Dojox sono estensioni di Dojo e includono progetti come il grid Widget, grafici,
gestione immagini ed oltre.
Util è una collezione di utilities Dojo che includono un FrameWork di unit-test e permette di sviluppare tools per creare versioni custom di Dojo per i settaggi di produzione.
Integrazione di ArcGIS Server con Dojo
Come detto in precedenza le API ESRI per ArcGISServer sono state sviluppate su Dojo quindi vi è una integrazione molto forte tra i 2.
Questa integrazione significa che per usare le API ESRI occorre:
1. Includere le reference alle API e StyleSheet
2. Referenziare nel tag <body> una reference allo Style Sheet.
3. Creare un contenitore per la mappa
4. Usare lo statement “dojo.require” per importare le risorse che sarà necessario usare nell’applicazione.
Invece di caricare tutte le risorse in una volta, che causerebbe gravi problemi di performance all’applicazione, si includeranno solo quelle strettamente necessarie. Quali risorse includere? Beh almento “esri.map” altrimenti no mappa ;-)
5. Aggiungere una funzione JavaScript di inizializzazione che esegue diverse funzioni di configurazione per l’applicazione
in fase di startup. Per convenzione questa funzione di inizializzazione prende il nome di “init” o “initialize”. Poi alla funzione dojo.addOnLoad è passato il nome della funzione di inizializzazione e si occupa di gestire le chiamate a questa funzione solo dopo che tutti i componenti della pagina sono stati caricati. Attendere il caricamento di tutta la pagina è talvolte necessario quando ci si riferisce ad alcuni componenti nella pagina ed occorre essere sicuri che siano stati caricati, altrimenti si generano errori nell’applicazione.
Con questo POST abbiamo introdotto Dojo e la sua integrazione con le API javascript di ESRI, la prossima volta vedremo una sua applicazione.