Google Web Toolkit: Build AJAX Apps in the Java Language
Unless you have not used the web for the last couple of years, you should know that Google (whose stock at the time of this writing hovers around $500 per share) has grown into a mini universe on the web, with its own gravitational pull. It released numerous high-profile web applications (see the References section), most of them using AJAX, and created a reputation as a heavyweight AJAX guru. Google has pioneered or enhanced many uses of the AJAX technology.
Google Web Toolkit, or GWT, is a Java framework that can auto-generate AJAX-enabled JavaScript code from Java bytecode. In other words, you code in pure Java using Google API and "when you deploy your application to production, the GWT compiler translates your Java application to browser-compliant JavaScript and HTML," the JavaScript code produced will be AJAX enabled.
The framework is very robust with solid documentation. It covers all of the basic UI components such as Frames, Layouts, Buttons, Menus, Images, Lists, Popups, Tables, Text, Trees, and Tabs.
Here are some of the GWT features and widgets:
- Dynamic, reusable UI components
- RPC
- Real debugging
- JUnit integration
- Internationalization
- Interoperability and fine-grained control

The two features that are somewhat overlooked in the AJAX applications are Browser history management and Browser compatibility. When the application is designed around one or two pages with AJAX dynamic content, the browser’s back button functionality is broken. The GWT claims to add state to the browser’s back button history. Also, GWT alleges its applications automatically support IE, Firefox, Mozilla, Safari, and Opera with no browser detection or special-casing.
Although the framework does not emphasize the effects or the "cool" look of its UI elements, it provides a very robust development platform with a very complete set of building blocks for your applications. If you are a Java developer who wants to learn a new UI API to generate AJAX-enabled JavaScript and HTML, take a look at the GWT. The SDK is free and the documentation is easy to follow.
Script.aculo.us
Script.aculo.us is a collection of JavaScript libraries, and is not a compete framework like Backbase or IceFaces. It is also an add-on to the Prototype framework. If you are looking for a quick way to add some interesting visual effects and AJAX-enable your existing web pages, Script.aculo.us can be a solution. It has a very small footprint of several JavaScript files (that you simply drop on your web server) and the usage is simple and straightforward. Some of the features that come with the Script.aculo.us JavaScript libraries are animation framework, drag and drop, AJAX controls, DOM utilities, and unit testing. The resulting code is cross-browser compatible and can add nice effects with little effort.
Some of the supported effects you can use are Appear, Fade, Puff, BlindDown, SlideDown, Shake, and so forth-check out their site for more demos Here is the screenshot of the slider control Script.aculo.us provides.

Script.aculo.us may not provide all the bells and whistles of the other frameworks, but it is server-technology agnostic and provides essential tools for the beginner AJAX developer.
Bindows 2.0
If you like the look and feel of MS-Windows and like to write XML, this commercial framework is for you. Bindows can make your web applications look just like your desktop applications. Bindows also claims to be THE #1 AJAX, WEB 2.0 AND RIA FRAMEWORK with Support Accessibility for AJAX and Web 2.0 Applications. Naturally, the SDK’s main emphasis is on the UI that is defined with XML.
Here are some of Bindows’ features:
- Object-Oriented API with zero-footprint applications and a rich user-interface
- Wide array of supported widgets including menus, forms, grids, sliders, and gauges
- Native XML, SOAP, and XML-RPC support
- Server-side agnostic
- Most browsers are supported
Here is the screenshot:
Bindows needs to update the UI for the Vista Aero look when Windows Vista comes out. Otherwise, the applications may end up looking outdated.
DWR
DWR stands for Direct Web Remoting. It is an open source library that has wrappers on top of the asynchronous communication with the server, and can simplify AJAX style coding. DWR "allows code in a browser to use Java functions running on a web server just as if it was in the browser". To do so, it provides a server-side part and a client-side part that do DOM manipulations and the AJAX effects.
DWR dynamically generates JavaScript based on Java classes and uses AJAX callbacks to talk to the server "simulating" RPC mechanisms such as RMI or SOAP over the HTTP protocol.
Here is the diagram of the architecture:

It seems that DWR is designed for developers more than for designers and calls for understanding of the Java and JavaScript coding practices. It has a thorough documentation and helps developers start with it via tutorials and code examples.







Save to Del.isio.us
Reddit!
Digg it!
Software Development Guide…
I couldn’t understand some parts of this article, but it sounds interesting…
Programming Tutorials…
I couldn’t understand some parts of this article, but it sounds interesting…
[…] frameworks emerged to support the need for rich interfaces; I covered many of them in one of my previous articles and Script.aculo.us library in some detail in the last article. All of the Web 2.0 frameworks rely […]