|  |
 |  |
| |
 |
 |
|
The Zen of Dojo
|
|
Duration:
3 Days
|
|
|
This course is designed for experienced Web application developers and
professionals:
-
Architects
-
Designers
-
Consultants
-
Developers
-
Web 2.0 Developers
| |
Attendees must be conversant in Web applications, HTML and JavaScript. Familiarity with AJAX would be helpful but not necessary.
For JavaScript and AJAX, we recommend the following two courses respectively.
|
|
|
Description
|
Dojo has recently caught the attention as a popular AJAX toolkit. But it is
much more than that. Quite simply put, it is an Open Source JavaScript UI
toolkit. It makes writing JavaScript easier, building dynamic UIs very
simple and interacting with server-side components a breeze. The foundation
of Dojo is "Dojo Base", a single tiny library which contains Ajax, event
handling, effects, quick CSS queries, language utilities, and a lot more.
On top of this Base, the rest of Dojo Core adds high-quality
facilities for Drag and Drop, extended forms of Ajax and I/O, JSON-RPC,
internationalization, back-button handling etc.
Layered on Dojo Core
is the widget system, Dijit, for building UI components easily. If you can
write HTML and CSS, Dijit allows you to quickly build reusable client-side
components (by using extended attributes on HTML). By upgrading standard
HTML instead of inventing a new markup language, Dijit makes building
powerful Web 2.0 UIs very easy to learn.
This three day course does an in-depth look at the various parts of
Dojo both from a client side as well as server side perspective. This
will give you the tools to become facile with Dojo and to even extend it
suit your requirements.
We use the latest stable version of Dojo in this class.
|
|
Objectives
|
This course is targeted to give detailed guidance to building Web 2.0
applications using Dojo. On completion, attendees would be able to:
-
Understand the various components of the Dojo toolkit
-
Pick the tools and frameworks that can be used along with Dojo
-
Understand the various core JavaScript enhancements included in Dojo
-
See the various components added by the Dojo Core system libraries
-
Build powerful UI components by using Dijit
-
Use server-side components in Dojo to interact with AJAX frameworks
-
Understand how to deal with data on the server and client side
-
Extend Dojo by writing custom widgets, library components
-
Learn how to use the Dojo Grid component
-
Learn how to localize and internationalize a dojo-based application
-
Learn how to build automated test cases using the Dojo Objective Harness (D.O.H.)
|
|
Course Outline
|
Introduction to Dojo
-
What is Dojo?
-
Why Dojo? Why not
Rico,
Scriptaculous,...
-
Installation, Development Tools, etc.
Dojo Base
-
Getting Started with Dojo
-
Namespace Concepts, Package System, Custom Builds
-
Declarative and Programmatic Models
-
Event System:
Connecting multiple events
Augmenting JavaScript events
Event attributes and handlers
Page loading
Pub/Sub messaging, Topics
Object Oriented Dojo
-
Javascript Objects, Prototype
-
OO Dojo: report(), statics, ...
-
Functions as Objects
-
Classes, Constructors
-
Inheritance, Mixins
Dojo Core
-
Working with Widgets
-
Interacting with Widgets
-
Drag and Drop (DND)
The DnD API
DnD Actions
Styling DnD items
Dijit
-
What is Dijit
-
Markup, Validation, Assist, Feedback
-
Layout, Command Control: menus, toolbars
-
Date and Times
-
Advanced Editing, Rich Text, Themes
-
Filtering Select, Lists and Trees
-
I18N, Accessibility
Ajax and Dojo
-
A simple AJAX example
-
Using JSON
-
Form Data, RPC
-
Back Button, Undo, Bookmarks
-
Advanced AJAX features
Styling and Dojo Themes
-
Cascading Style Sheets (CSS)
-
CSS Syntax
-
Cascading order: External, Interal and Inlined
-
Class and ID selectors
-
Pseudo-class selectors
-
Creating custom styles
-
Dojo themes
-
Dojo theme structure
-
Creating custom Dojo themes
| |
Writing Custom Widgets
-
Compound Widgets
-
Objects and Templates
-
The Memo Widget
-
Widget by Refactoring
Dojo Data
-
dojo.data: Design and APIs
-
Using and Creating Datastores
-
Data-Enabled Dijit
-
dojo.storage client side storage
Dojo Grid
-
The Flexible Grid
-
MVC and Grid
-
Datastores and Models
-
Filtering by Queries
-
Cell editing
-
Obsverer/Observable
Internationalization (I18N)
-
Strategies
-
Locales
-
Message and resource bundles
-
Dojo I18N functions
-
Formatting dates
-
Formatting numbers
-
Formatting currencies
-
Avoiding translation pitfalls
Dojo Objective Harness (D.O.H.)
-
Fundamentals of the D.O.H. testing framework
-
D.O.H. assertions
-
D.O.H. Test fixture
-
Group registration function
-
Asynchronous testing with doh.Deferred
-
Browser-based testing
Advanced Dojo
-
dojo.query: nodes by Tag, ID or Class
-
XPath-like Queries
-
Drawing with GFX
-
Integration with Web Services
-
Threads - dojo.Deferrable
-
Porting Dojo applications
|
|
|
|