Appendix B. AJAX Libraries with Server Ties

In this chapter

PHP

Java

C#/.NET

Multiple Languages

PHP

AjaxAC

Web site: http://ajax.zervaas.com.au/

License: Apache

AjaxAC is a widget-based AJAX library in which minimal JavaScript is written. New widgets are written as PHP classes, and they use an event API for attaching AJAX actions to normal JavaScript events. Small amounts of glue JavaScript are included inside the PHP class, which can make for a complex development process. On the client, a mix of custom, handwritten JavaScript and framework-generated JavaScript is used to implement applications.

HTML_AJAX

Web site: http://pear.php.net/package/HTML_AJAX/

License: LGPL

HTML_AJAX provides a stand-alone JavaScript-and-PHP API for AJAX requests. It’s part of the PHP PEAR library project. PHP integration includes exposing PHP classes though proxy JavaScript objects and helper functions for JavaScript generation. RPC communications takes place using JSON, although other formats are supported through a pluggable architecture. Easy AJAX form submission and the generation of JavaScript from AJAX requests are also supported. The library is covered in detail in Chapter 9, “Libraries Used in Part II, HTML_AJAX.”

PAJAJ

Web site: http://pajaj.sourceforge.net/

License: LGPL

PAJAJ is an object-oriented, event-driven AJAX library for PHP5. You can develop applications by using the PAJAJ HTML-generation tools to build your HTML and to attach events on the server side; you can also use a JavaScript API to bind events to already-existing HTML pages. PHP classes are exposed to JavaScript by creating a PHP page for each class and having the class extend the BaseAjaxServer class. This requirement of extending a base class can be troublesome for some frameworks that already contain base classes. JSON is used for all communication between JavaScript and PHP.

TinyAjax

Web site: www.metz.se/tinyajax/

License: LGPL

TinyAjax is a PHP5 solution that provides a simple API that is similar to SAJAX. It works by exporting individual PHP functions to JavaScript and generating JavaScript from a set of PHP helper methods. These helper methods include functions for grabbing the values from an HTML form and setting the innerHTML of DOM elements. Basic TinyAJAX applications can be written without writing any JavaScript code.

Xajax

Web site: www.xajaxproject.org/

License: LGPL

Xajax works by exporting PHP classes that return AJAX action objects from each call. These return actions can update the attributes of any DOM element and new custom JavaScript to the application. This functionality is similar to HTML_AJAX_Action (Chapter 9) and is designed to allow you to implement AJAX almost completely from the server side. Data serialization is handled using a custom XML format.

XOAD

Web site: http://wiki.xoad.org/index.php?title=Wiki_Home

License: PHP

XOAD provides RPC-style AJAX by exporting PHP classes to JavaScript. It includes a number of helper classes for generating the needed JavaScript during this process. JSON is used for communications between the client and the server. XOAD also includes a number of additional features, including action-based returns (similar to HTML_AJAX_Action in Chapter 9) and a custom event model. The event model is designed to allow you to fire an event on one client and catch it on another. This makes it easy to write chat applications.

Java

AjaxTags

Web site: http://ajaxtags.sourceforge.net/

License: Apache 2.0

AjaxTags is a set of JSP tags designed to make it easy to add AJAX to Java JSP sites. Each tag implements a specific widget. These tags include support for an auto-complete text box, pop-up balloons, multistep select boxes, tabbed panels, and area displays. Tags are also offered for making HTML content replacement. Prototype, scriptaculous, and OverLIB are used on the client side. XML is used for communication between the client and the server.

Direct Web Remoting (DWR)

Web site: http://getahead.ltd.uk/dwr/overview/dwr

License: Apache

DWR offers an easy way to export Java classes and make them accessible from JavaScript applications. DWR does this by generating JavaScript proxy classes that match the Java ones. This operation works much like HTML_AJAX’s RPC mechanism (described in Chapter 9). The Java classes can be configured using XML or annotations. A number of utility JavaScript functions are also included to make standard DOM-manipulation tasks easier.

Google Web Toolkit

Web site: http://code.google.com/webtoolkit/

License: Mix of Apache 2.0 and free-to-use components

Google Web Toolkit allows Java developers to make AJAX applications without writing JavaScript. The heart of the toolkit is a special compiler that translates the Java application into JavaScript and HTML. The toolkit includes a user-interface library with a large number of widgets, including standard HTML form elements, menu bars, trees, tables, dialog boxes, and various panels for managing the layout of the application. A custom event model based on a listener pattern is provided, as is an API for managing style sheets. RPC support is provided using code generation to hide the hard work, and data serialization is provided for most basic Java types. The toolkit also includes back-button management and debugging tools.

ZK

Web site: http://zk1.sourceforge.net/

License: GPL and commercial

ZK is a component- and widget-based AJAX library. It allows you to build AJAX applications without writing JavaScript. Its widgets are geared toward building complete applications; thus, it would be hard from a style-and-usability perspective to integrate it into existing Web sites. (This isn’t unique to ZK; many widget-based toolkits have a similar problem.) ZK has a large set of widgets, from standard HTML form elements to trees and modal dialog boxes. ZK applications are developed using a custom ZUML markup language (which is similar to Mozilla’s XUL) with embedded Java.

C#/.NET

Ajax.NET

Web site: www.ajaxpro.info/default.aspx

License: Public domain

Ajax.NET provides AJAX support for ASP.NET 2.0 applications. It includes control for AJAX versions of standard HTML elements and allows you to create your own custom controls. It includes the ability to expose .NET classes to JavaScript, handling type mapping automatically. This mapping is implemented using JSON.

Anthem.NET

Web site: http://anthem-dot-net.sourceforge.net/

License: Public domain

Anthem.NET provides AJAX support to ASP.NET 1.1 and 2.0. Like most .NET libraries, it provides indirect AJAX, where portions of your templates are rewritten by the library to make AJAX calls. It works by mapping the standard ASP.NET control model into an AJAX environment. This includes full support for view state and server-side events.

Atlas

Web site: http://atlas.asp.net/

License: Free to use

Atlas is Microsoft’s AJAX toolkit that provides tight integration with ASP.NET 2.0 and Visual Studio. The toolkit is designed so that .NET developers can add AJAX to their applications by using widgets and indirect AJAX and without editing code. In indirect AJAX, the Atlas code takes current ASP.NET templates and rewrites their links and form actions, making them post to the server using AJAX calls. The toolkit also includes visual effects, drag-and-drop support, automatic user profiles, data-binding widgets, and support for Windows Live widgets.

MagicAJAX.NET

Web site: http://www.magicajax.net/

License: LGPL

MagicAJAX.NET focuses on providing AJAX support without your needing to write JavaScript code. You can do this by adding an AJAX control to your pages and then rewriting current controls. MagicAJAX.NET also has some support for writing JavaScript from .NET (including helper methods). Communication with the server is done with URL-encoded POSTs to the server. In such situations, the server returns JavaScript code.

Multiple Languages

CPAINT

Web site: http://cpaint.booleansystems.com/

License: GPL and LGPL

Languages: PHP, ASP, and PERL

CPAINT is an AJAX library that is focused on communications and supports XML and text-return types. The JavaScript API supports RPC calls and can be used in asynchronous or synchronous mode. Results are encapsulated in a CPAINT result object and can be generated on the server using a similar API. As an alternative, the results on the server can be generated automatically using a proxy API.

Rialto

Web site: http://rialto.application-servers.com/wiki/

License: Apache

Languages: JSP, JSF, .NET, Python, and PHP

Rialto is a JavaScript widget library with support for a number of different server languages through pluggable back ends. The widgets include drag-and-drop, treeview, popup, calendar, and forms. The pages are created using an object-oriented API in JavaScript, and page development can be done using pure JavaScript or a server API. Server-specific code includes an object-oriented API for creating widgets as well as an API for dealing with AJAX requests. Java JSP support is the most mature, but others are in early development.

SAJAX

Web site: www.modernmethod.com/sajax/

License: BSD

Languages: PHP, ASP, ColdFusion, Perl, Python, Ruby, LUA, and IO

Sajax is a simple RPC-style AJAX library. Its original focus was PHP, but support for other languages has been added over time. Some of the additional language support is under a different license than the main code. Sajax provides a procedural API and works by registering server methods and having JavaScript stubs generated for them. When you call the stub method, Sajax makes an AJAX request and then calls a callback method with the results.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.142.47.230