Am besten komme ich zur Zeit mit dem Buch von packt Publishing zurecht.
Daneben hab ich noch Practical Dojo projects.
Es ist eine andere Welt als Java OpenSource Projekte.
Es werden recht schnell neue Punktrelease rausgegeben. Nun sind wir in Release 1.3.1.
Es gibt eine zentrale Webseite:
http://dojotoolkit.org/Allerdings fällt schon mal die api-Webseite
http://api.dojotoolkit.org aus. Für mehr als eine Woche. Es gibt dann Hinweise auf die Api von 1.1, die man herunterladen kann. Nur ist die nicht mehr aktuell.
Beispiele für dojo.1.1 funktionieren auch nicht mehr unbedingt für 1.3
Naja. Vielleicht ist das jetzt eine besonders produktive Phase der Framework-Entwickler und irgendwann stabilisiert sich das ganze.
Und das alles, obwohl größere Softwarehersteller wie IBM und viele, viele andere mehr auf dojo aufbauen. Vielleicht muß es so sein. Im Grunde haben diese ganzen javaScript Frameworks sowieso ziemliche Ähnlichkeiten. Hab aber zur Zeit in dojo den tiefsten Einblick (für meine Verhältnisse).
Mit JavaScript Kenntnissen sollte man ausgestattet sein. Massig Call Back Funktionen, closures sollte man kennen, das Funktionen Objekte sind, das die Funktionen der einzige Kontext ist und das man seit JavaScript 1.5 den Kontext, in dem eine Funktion aufgerufen wird, bestimmen kann. Besonders produktiv i.S.v. Geschwindigkeit bin ich nach 1 Woche ziemlich heftigen Arbeiten mit dem Zeug an einer konkreten Aufgabe noch nicht. Gibt da aber Fortschritte.
Für den Seitenaufbau gibts javaSwing ähnliche LayoutManager. Die dojo-Dijits sind eine Antwort auf Widgets (wie Selectbox, Button, etc.), die es in jedem Graphikframework gibt. Oft mit automatischen Ajax-Features. Da hört dann aber die Gemeinsamkeit auf. Es gibt verschiedne Klassen, um Daten aus der Anwendung an diese Widgets zu binden. Wenn man dann die Auswahl dynamisch ändern will, muß man sich schon auskennen. Der Code um vorhandene Items aus einer Selectbox zu löschen (um die Auswahl dann dynamisch zu ändern), sieht so aus:
var gotNames = function(items, request){
for (var i = 0; i < items.length; i++) {
console.log("Deleted city: " + store_city.getLabel(items[i]));
store_city.deleteItem(items[i]);
}
store_city.save({
onComplete: saveDone,
onError: saveFailed
});
}
var request = store_city.fetch({
query: {},
onComplete: gotNames
})
Ich sag nur CallBack Funktionen.
dojo.hitch (um einer Funktion einen anderen Kontext unterzujubeln) ist äußerst wichtig.
Microsoft nimmt von ihrem eigenen für den Entwickler "komfortablen" Ansatz der code Generierung für ajax-mässige Seiten Abstand. Es ist einfach zu unflexibel. Die setzen auf ein anderes und im Vergleich zu dojo weniger ambitionierten und dadurch wohl auch einfacheren Framework jQuery auf.
Hab damit auch schon mal ein wenig rumprobiert. Wer vor dojo nicht schreiend wegläuft, dürfte sich auch schnell mit jQuery zurechtfinden. Letztlich werden die Frameworks ja sehr gelenkt von dem unterliegenden JavaScript. Sie machen halt vieles einfacher, effizienter und vor allem glätten sie die Unebenheiten der Browser. Entwickle mit dem neuesten Firefox und teste mit dem bei Kunden nach wie vor sehr belieben IE6. Da gibts mit Dojo bisher keine Schwierigkeiten und für mich keine doppelte Entwicklung.