luni, august 29, 2005

AJAX in ACTION

Manning publica o carte despre AJAX -> Ajax in Action. O sectiune dintr-un capitol este disponibila pentru review . Aici se vorbeste despre patternul MVC aplicat la diferite niveluri ale aplicatiei, la nivelul controalelor, a paginii Web, si a aplicatiei integrata cu tot cu partea de server.
O perspectiva placuta asupra aplicatiilor in gereral, cu accente asupra dezvoltarii partii de client cu JavaScript.

Am folosit intens Swing impreuna cu sistemul de componente. Acolo, la nivelul componentelor era implementat un MVC simplificat model-delegate unde UI-delegate incorpora controllerul si view-ul componentei. Deci MVC-ul era format din UI-delegare care venea cu look-and-feel-ul si cu sistemul de evenimente, si separat era modelul.

Mai apoi am folosit intens MVC2 in aplicatii Web. De fapt aici am inteles cu adevarat MVC. Contolerul era un servlet care avea rolul sa modifice vizualizarea (in general) prin redirectare. Vizualizarea era alcatuita din JSP-uri care in general afisau colectii de bean-uri fara a avea cunostinta despre ce afiseaza (view-ul nu constientizeaza modelul). Modelul era format din Java bean-uri (sau colectii) cu rol de transport - pattern-ul Value Objects. Partea inteligenta era controllerul.

In JavaScript (ignorand partea de server) lucrurile nu pot sta altfel.

In week-end-ul acesta am studiat urmatoarele:

- prototype - un framework JavaScript
- http://script.aculo.us - colectie de clase JS cu rol in dinamica aplicatiilor pe client
- Rico - idem
- Behaviour - idem

De remarcat MODIv2 -> The Mouseover DOM Inspector, o modalitate de a urmari nodurile arborelui DOM asociat paginii (in FireFox exista un astfel de mecanism implementat in browser) .

De asemenea JSDocs pentru generarea documentatie in stil javadoc (din nefericire cu perl). Si de asemenea JSUnit echivalentul lui JUnit pentru JavaScript.

MyEclipse vine cu AutoComplete pentru JavaScript si HTML, sugerand atat pentru Netscape cat si pentru IE. Mai demult gasisem doar un plugin pentru hightlight-ing.