Rich Internet Applications with Dojo
- Dojo is a JavaScript library that addresses browser incompatibilities and provides common functionality like Ajax and UI widgets. It has a layered, modular architecture and is extensible.
- Dojo aims to be server-side technology independent. It provides software engineering benefits like testability. It has a large open source community and foundation.
- Examples of Dojo applications include a photo gallery, CRUD applications, and a Facebook demo. The future includes more mobile applications using Dojo and standards like HTML5.
7. Web App Evolution
Browser tier Web tier
HTML
PHP ASP
Servlets Data tier
Internet JSP
JSF
JavaScript
Spring
HTML ...
7
8. Web App Evolution
Browser tier Web tier
HTML PHP
ASP
Servlets
JSP
JSF
Spring
Internet
Web Services
Data tier
JavaScript
REST
HTML
8
9. Web App Evolution
•Browser incompatibilities
• Javascript
• Document Object Model (DOM)
•In-browser software development
• SW Engineering support
• Testing JavaScript code?
• cross-browser?
• Good debugging tools
• Browser plugins: Firebug
• Built in development tools
• IE8, Safari
9
10. JavaScript library goals
•Eliminate Browser incompatibilities
•JavaScript language enhancements
• Class based concepts
•Library of common functionality
• Ajax
• DOM querying
• DOM animation
• UI (User Interface) widgets
• Form controls
• Layout controls
10
28. CRUD applications
•Custom dojo components
• HTML Forms with CRUD semantics
• DWR communication (Ajax)
• Open Source
• http://www.ppwcode.org
•Talk on Devoxx
• http://www.mahieu.org/?p=424
28
35. Future
•Mobile Devices
• Mobile applications
• Native vs. Mobile web app
• Dojo
• E.g. http://eventninja.net
• Access hardware
• PhoneGap (http://phonegap.com/)
• Titanium (http://www.appcelerator.com)
• E.g. http://humanapi.org
35
36. Future
•Towards an open web
• Standardization!
• W3C Widgets
• Similar to Dojo widgets
• download once, store on device.
• http://www.quirksmode.org/blog/archives/
2009/04/introduction_to.html
• HTML 5
• Scripting API’s
• drag and drop, offline data storage, history mgt.
• SVG support, canvas element, timed media elements
• E.g. http://www.youtube.com/html5
36