Name
Rich Internet Applications

Code
3807

Duration
40 Hours

Description
Technically, there are four different approaches for developing rich internet applications. The first approach uses the Adobe Flash technology. Either directly by creating the Adobe Flash SWF files or indirectly by using frameworks such as Adobe Flex. The second approach uses Microsoft Silverlight. The third approach uses Oracle JavaFX. The fourth one is based on extensive usage of JavaScript, Ajax, CSS3 and HTML 5. Of all options, the fourth one is the only one that fits all platforms. Silverlight is supported on windows based platforms only (iPhone, iPad as well as well as Linux based platforms are not supported). Adobe Flash is not supported neither on iPhone, iPad or WP7. The Oracle JavaFX is not supported on platforms that don't support running a standard Java runtime environment (iPhone, iPad, Android and WP7). This course focuses on learning how to develop rich internet applications using HTML 5, JavaScript and Ajax. It focuses on the client side (web browser) only. Whether you specialize in developing server side applications using Java EE, PHP or .NET, this course should be relevant for you.

Population
Software developers with practical experience in developing web applications, either using PHP, Java EE or .NET.

Objectives
Be capable of using JavaScript, Ajax and HTML 5 in rich internet applications development.

Prerequisites
Practical experience in web applications development.

Topics
Java Script
Introduction
History
ECMA Script
HTML & Java Script
Basic Elements
Case Sensitivity
Identifiers
Keywords
Comments
Statements
Variables
Data Types
The typeof Operator
The undefined Type
The Null Value
The Boolean Type
The Number Type
The String Type
The Object Type
Operators
Unary Operators
Binary Operators
Boolean Operators
Relational Operators
Conditional Operators
Assignment Operators
The Comma Operator
The if Statement
The do while Statement
The while Statement
The for Statement
The foreach Statement
The with Statement
The switch Statement
Functions
Values
Dynamic Properties
Execution Scope
Garbage Collection
Object Oriented Programming
Introduction to OOP
What is an Object?
The Object Type
Factory Design Pattern
Define Constructors
The prototype Property
The in Operator
The for-in Operator
Prototype Block
Simple Inheritance
Constructors Chaining
Global Objects
The Object Type
The Array Type
The Date Type
The RegExp Type
The Function Type
The Number Type
The String Type
The Boolean TypeThe Global Built-in Type
The Math Built-in Type
Borwser Object Model
Introduction
Window
Location
Navigator
Screen
History
Document Object Model
Introduction
The nodeType Property
The nodeName & nodeValue Properties
The childNodes Property
The parentNode Property
The previousSibling Property
The nextSibling Property
The firstChild Property
The lastChild Property
Nodes Relationships
The ownerDocument Property
Events Handling
Introduction
Events Bubbling
HTML Events Handlers
Form Field Properties
Form Submitting
Ajax Programming
Introduction to Ajax
What is Ajax?
Classic Synchronous Model
Partial Screen Update
Asynchronous Ajax Model
Simple Ajax Demo
Ajax Advantages
Ajax Disadvantages
Ajax Frameworks
jQuery
dojo
prototype
ExtJS
mootools
backbase
yahoo library
ajax.org
alternative technologies
javafx
silverlight
flash
flex
The XMLHttpRequest Object
What is the XmlHttpRequest Object?
History
The Standard
Creating XmlHttpRequest Object
The XmlHttpRequest Methods
The XmlHttpRequest Properties
Synchronous Usage
Asynchronous Usage
The readyState Property
Consuming Web Services
Web Services Overview
Public Web Services
webservicex.net
Yahoo Developer Network
Amazon Web Services
last.fm Webservices
eBay Webservices
The Dynamic Script Tag Pattern
Web Services APIs
HTML 5 Basics
Introduction
What is HTML 5?
Standartization Process
Markup Language
Application Programming Interface
Multimedia
The Video Tag
The Audio Tag
Geo Location
Introduction
The navigator.geolocation Property
The getCurrentPosition Function
Location Callback Function
Error Callback Function
Offline Storage
Introduction
Session Storage
Canvas 2D Graphics
Overview
Creating Canvas
Drawing on Canvas
WebGL 3D Graphics
Introduction
Samples
Open GL ES2
Foundation Layer
GLGE
Scene JS
Communication
Introduction
The PostMessage API
Events Listenr
Web Workers
Introduction
Limitations
Worker
Web Sockets
Web Browser Support
Creating Web Socket
Call Back Functions
Sending Data
Close Connection
HTML 5 Forms
Introduction
The email Input Type
The tel Input Type
The range Input Type
The number Input Type
The color Input Type
The datetime Input Type
The datetime-local Input Type
The time Input Type
The date Input Type
The week Input Type
The month Input Type
HTML 5 Forms APIs
The placeholder Attribute
The autocomplete Attribute
The autofocus Attribute
The datalist Attribute
The required Attribute
Forms Validation
Validity Constraints
The valueMissing Constraint
The typeMismatch Constraint
The patternMismatch
The tooLong Constraint
The rangeOverflow Constraint
The rangeUnderflow Constraint
The stepMismatch Constraint
The customError Constraint
Drag & Drop
Introduction
Browsers Support
Sample