The Twelve Days of AJAX, Page 2
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.
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
- Real debugging
- JUnit integration
- 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.
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.
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 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.
Here is the diagram of the architecture:
SmartClient: AJAX GUI System smartclient.com
SmartClient is an enterprise-grade commercial UI framework. It has the largest amount of prepackaged UI components, with different effects, animations, interactive actions, and a distinct look and feel among other frameworks. The sheer amount of the UI components (and their flexibility) makes it easy to build desktop-"like" behavior in web applications that use SmartClient.
The framework supports modern service-oriented architectures with declarative binding to WSDL and REST web services. It also understands metadata formats, such as XML schema, allowing a rich shared client-server data model. Some of the clients for SmartClient are Philips, Intuit, and PeopleSoft.
Here are some of the many components available:
Note the subtle shadow effect, which can be customized for some components.
SmartClient is available for a free developer evaluation. The enterprise license is per project, but a standard license for small deployments (one CPU or 50 concurrent users) is US $4995. If you are a corporate developer who needs to design a very robust web application that mimics desktop application behavior, take a look at SmartClient.