| |
| |
| |
|
|
|
Mastering Rich Ajax Platform (RAP) |
|
Duration:
4 Days |
|
|
This course is intended for any Java developers looking to build Ajax and Web 2.0 applications using the
plugin architecture provided by the Eclipse platform.
- Java Developers
- Consultants
- Architects
| |
Experience with Java is absolutely necessary. Experience with Eclipse plugin development would be helpful, but is not required. Similarly, exposure to concepts in Web and Web 2.0 will also be helpful but is not required.
|
|
|
Description
|
The Rich Ajax Platform (RAP) enables developers to build visually rich, and highly interactive Ajax-enabled Web 2.0 applications. RAP uses the popular, proven and tested Eclipse development model and platform. It leverages the Eclipse component model, plug-ins with the well known Eclipse workbench extension points. The graphical user interface development is done in a manner that is very similar to way one would do it with the standard eclipse widget library Standard Widget Toolkit (SWT) API and JFace (Web-JFace).
Developing RAP applications is very similar to developing application using the Rich Client Platform (RCP) in Eclipse, but instead of being executed on a desktop computer RAP applications execute on a server and the clients can access the application from standard web browsers. The SWT widgets are now rendered on the client; this is mainly achieved by providing a special implementation of SWT widgets which, instead of being implemented using the native graphical widgets (MS Windows, X Windows, Macintosh etc.) as they normally are, are now implemented using a combination of HTML and JavaScript.
This course provides a detailed treatment of the RAP architecture and the RAP Widget Toolkit (RWT).
It shows you how to design, develop, test and deploy RAP-based Web 2.0 applications. This course covers
the use of the development tooling provided by the Eclipse plugin-development environment and its role in
the entire development cycle. This course also shows you how to extend the RWT widget set with your own
custom components. Other topics covered include automated testing, branding, internationalization, Web deployment,
design patterns and best practices.
This course is extremely hands-on, with the labs constituting 60% of the course.
|
|
Objectives
|
Upon completion of this course, attendees will be able to:
-
Understand the issues, challenges and advantages of AJAX and Web 2.0 applications
-
Understand the Eclipse Plugin Architecture
-
Understand how to build plugins to extend the Eclipse extension points
-
Learn how to use the SWT and JFace (Web-JFace) frameworks
-
Understand the View and the Perspective extension points
-
Learn how to build Rich Client Platform (RCP) based applications in Eclipse
-
Master the Rich Ajax Platform (RAP) architecture
-
Master the RAP Widget Toolkit (RWT) framework
-
Learn how to develop RAP applications using the tooling provided by JDT and the
Plugin Development Environment (PDE)
-
Learn how to brand, package, deploy and launch RAP applications on a Web Server
-
Learn how to extend the RWT toolkit with custom widgets
-
Learn how to create automated tests (ala JUnit) for RAP applications
-
Learn how to localize and internationalize RAP applications
-
Apply well known design patterns and best practices for an efficient, maintainable and extendable RAP application
|
|
Course Outline
|
Overview of Eclipse
- Eclipse Architecture
- Plugins and Extension Points
- Building a Plugin using the PDE
- Standard Widget Toolkit (SWT)
- The JFace library
-
Extending the View and Perspective extension points
- Building Rich Client Applications (RCP)
- Plugin Development Environment
AJAX Overview
- What is Web 2.0?
- Introduction to AJAX
- Building interactive applications in AJAX
- The XMLHttpRequest object
- Asynchronous Client-Server interactions
- Performance and architectural considerations
- Quick introduction to some popular AJAX frameworks
Rich AJAX Platform (RAP)
- What is RAP?
- RAP Architecture
- How does it work?
- Request-Response lifecycle
- The org.eclipse.rap.ui.entrypoint extension point
- Anatomy of a RAP application
- Resource Management
- Session Management
- Service Handlers
- Using the PDE to build, test and deploy RAP applications
SWT Widgets
- Introduction to the SWT Widget library
- Event Model
- Layouts
- Issues in using SWT widgets in RAP applications
Web-JFace
- Introduction to the Web-JFace library
- Architecture of Viewers
- Dialogs and Wizards
- Actions and Contributions
- Image Registry
- Anatomy of a JFace-based application
Web-Workbench
- Workbench Windows
- Perspectives
- Workbench Parts
- Selection Service
RAP Widget Toolkit
- Architecture of an RWT Widget
- Client-side rendering
- Server-side rendering for non-AJAX browsers
- Server-side state management
- Client-Server synchronization using Lifecycle Adapters
- Event transmission using AJAX-Request
- Widget lifecycle management with RWTLifeCycle
- The ExternalBrowser class
- Layout of RWT Widgets
- Limitations of RWT Widgets
| |
Custom RWT Widgets
- Overview of creating Custom Widgets
- Overview of Qooxdoo
- Server-side implemenation
- Client-side implemenation using DHTML (JavaScript and HTML)
- Issues in layout management
- Lifecycle management
- Rendering the widgets
- Registering the Javascript files using the RAP resources extension point
Themes
- Basic concepts
- Controlling the look and feel
- Defining custom colors, fonts, borders, images etc.
- Defining custom RWT themes
Branding
- What is branding?
- What aspects of a RAP application may be branded?
- Using the org.eclipse.rap.ui.branding extension point
- Using the PDE to brand a RAP application
Internationalization (I18N)
- Using translatable strings
- Message bundles
- Handling locale changes on a per-request basis
JEE Web Deployment
- Introduction to deployment issues of web applications
- Using Equinox in a Servlet Container
- Preparing build scripts and content
- Packaging a RAP application in a WAR file
- Deploying a RAP application on Tomcat (or other Web Containers)
Testing
- Creating unit tests with RAP JUnit
- Running stress tests of RAP applications using JMeter
|
|
|
|