A Dojo egy eszközkészlet, amivel szebb és jobb webalkalmazásokat készíthetünk. Kliens oldali JavaScriptről van szó, ami kiterjeszti a böngészők - mint tudjuk, elég korlátozott - képességeit. Nem kell azon aggódni, hogy vajon minden böngészőben működni fog-e a kódunk (fog), illetve az egész UI egységes kinézetű lesz, mert mint készlet elég széles körű palettát kínál, és ezek nem „hozzáhekkelt” kiegészítések, hanem alaposan átgondolt tervezés és tesztelés eredményei. Robosztus keretrendszerről van szó, az egyes funkciók hierarchiába vannak szervezve, és a sokrétűség nem társul hosszú tanulási folyamattal és bonyolult használattal. Épp ellenkezőleg. Fontos még megemlíteni, hogy számos neves cég támogatja és használja a Dojo-t (IBM, Google).
Forráskódja ingyenes és szabadon elérhető, kereskedelmi termékekben megkötés nélkül használható.
Kialakulás
Kidolgozásra vár.
Felépítés
A Dojo az alábbi fő modulokból áll:
- dojo: ez az alap, minden más erre épül, „core”-nak is nevezik. Sok mindent tartalmaz: AJAX, DOM manipuláció, osztály-alapú programozás, események, data store, drag & drop, i18n
- dijit: widget-ek (UI komponensek) széles választékát nyújta, teljesen a dojo core-ra épül.
- dojox: a dojo core-ra és a dijit-re épülő egyéb kiterjesztések (pl. grafikus könyvtárak). Minden package-ben van egy README fájl, ebből tájékozódhatunk, hogy az adott modul hol tart a fejlődésben, mennyire stabil. Vannak olyan modulok, amik teljesen kiforrottak, mások még csak kísérleti fázisban vannak.
- util: olyan eszközök, amik a toolkit más részeit hivatottak támogatni (buildelés, tesztelés és dokumentálás).
- dgrid: ez egy nagyon gyors, kiterjeszthető grid implementáció, ami a dojox-ban található, most már deprecated-nek számító grid-et hivatott lecserélni. Mindent tud, ami egy ilyen komponenstől elvárható: témák, mobil kompatibilitás, rendezhetőség, szerkeszthetőség, lapozás, stb.
Verziók
Kezdet: 2004
Az alábbi táblázat csak a fontosabb release-eket tartalmazza:
Verziószám | Release dátum | |
1.0 | 2007-11-05 | Az első stabil verzió |
1.1 | 2008-03-26 | |
1.2 | 2008-10-02 | |
1.3.0 | 2009-03-26 | |
1.4.0 | 2009-12-07 | |
1.4.4 | 2012-06-22 | IE 9 és Firefox 4+ támogatás |
1.5.0 | 2010-07-22 | „Claro” téma |
1.6.0 | 2011-03-15 | HTML 5 támogatás |
1.7.0 | 2011-10-27 | AMD (Asynchronous Module Definition) API |
1.8.0 | 2012-08-15 | Dokumentáció |
1.8.3 | 2012-12-19 | 2013 áprilisában az elérhető legfrissebb verzió |
Az 1.4 - 1.8 verziókhoz még jöhetnek ki release-ek (lásd például 1.4.4). Jelenleg a 2.0-án folyik a munka, a kiadás várt dátuma 2013.
Kritikák
Kidolgozásra vár.
Miért ezt válasszuk (jQuery helyett)?
- Modularitás és AMD: Egy komolyabb alkalmazásban a JavaScript kódunk mennyisége idővel elkerülhetetlenül nőni fog. Nem célszerű egy hatalmas fájlban tartani mindent, amikor aszinkron módon is betölthetjük a szükséges komponenseket. A modularizációval nem csak átláthatóbbá és könnyebben karbantarthatóvá válik a kód, de gyorsabb is lesz a betöltése.
- Osztályok és kiterjeszthetőség: A JavaScriptben nincsenek „igazi” osztályok, de a Dojo Toolkit declare moduljának segítségével tudjuk az osztály-alapú öröklődést szimulálni.
- Aspektusok és „function to function” események
- Deferred-ek és egységes AJAX
- Dijit UI keretrendszer
- Dojo Mobil: mobil megoldások tárháza (eszköz detektálása, mobil témák, mobil widgetek, layout-ok)
- Vektorgrafikus ábrák és diagramok: a GFX könyvtár segítségével vektorgrafikus ábrákat is késztíhetünk (SVG, VML, Silverlight, Canvas és WebGL), illetve diagramokat is, a GFX-re épülő dojox/charting segítségével.
- DOH tesztelési keretrendszer: a kliens oldali tesztelés is hasonlóan fontos, mint a szerver oldali. A Dojo tesztelési keretrendszerével (Dojo Objective Harness) könnyedén eleget tehetünk ennek a követelménynek.
- Dojo Build Processz: egy éles környezetben futó alkalmazás esetében fontos a gyors betöltés, cache-elhetőség, minified verzió készítése. A dojo ehhez eszközt ad a kezünkbe, különböző build profile-okat készíthetünk, amiket aztán parancssorból futtatva elkészíti nekünk a kívánt outputot.