12 May 2010

Ajax Frameworks

The best technology to build dynamic web pages is Ajax. JavaScript code embedded into the HTML page is used to send requests to the server. At the server side, some processing is required to handle them, find the info or store the data. To do that, we need for a specialized framework. The framework has always a JavaScript part, and sometimes a server side part in another scripting language. A lot of them exist in various programming languages, in all environments around, but we retain here only the most widely used.
Summary
  • Why a framework?
  • JavaScript libraries
  • PHP frameworks
  • Java frameworks
  • .NET frameworks
  • ColdFusion frameworks
  • Ajax and XUL
  • Resources

Why a framework?

Actually, this framework is the Ajax engine described by J. J. Garrett and intended to suppress waiting for the user when accessing the server.

The framework provides classical, cross-browser functions to use the XMLHttpRequest object. But a framework may goes beyond that, and allow to build "rich web applications", applications with a graphical user interface and other features of desktop software that run through a browser, while exchanging data with a remote server.

JavaScript libraries

Many Ajax frameworks and libraries rely solely upon JavaScript and contain no server components and therefore server technology dependencies.

Most of them use XML as data format, and sometime JSON, another textual format.

A JavaScript library is loaded with just a tag, as this:
<script src="prototype.js" type="text/javascript></script>
This tag includes the "prototype" library into the page and its
function become usable by the browser, in this page.

Such Ajax libraries and frameworks include:
  • Prototype.

    Is the base of several other frameworks including that of Yahoo. Its goal seems to be in reducing the size of Ajax Code.
  • Script Aculo.

    Add more features to prototype.
  • Rico.

    Based also on prototype, add special effects to HTML pages.
  • Dojo Toolkit.

    Uses packages with a mechanism to load them together along with the page. It can build reusable components and widgets, a lot of them is provided on the site. It allows to manipulate the DOM more easily, and to make graphical effects.
  • Qooxdoo.

    Includes advanced cross-browser layout managers and an advanced build system for graphical user interfaces similar to that of desktop software. Widgets re provided with the function to use them from the keyboard or the mouse. Third parties provide PHP or Java code to process data with XMLHttpRequest.
  • Sarissa.

    ECMAScript library to process native XML APIs. Allow DOM instances, XML loading, XSLT transformations, XPath queries, serialization of lists into
    XML...
  • Yahoo UI.

    Library from the Yahoo search engine. Includes CSS resources.
  • Anaa.

    A simple library for GET and POST with callbacks.

PHP frameworks

On the server side, the programmer may use PHP functions to process requests from the browser. PHP allows to deal with database, search data, build pages or parts of page and publish the page or return data to the XMLHttpRequest
object. PHP 5 specifically, thanks to its SimpleXML class, is able to create XML files that may be returned to the object. But all these tasks require special functions to write... however the work is already done in some free open source frameworks.
  • AjaxAC.

    Small PHP library.
  • Xajax.

    More sophisticated, is made of a JavaScript library and PHP classes, to help in using other PHP functions written by you. Uses only the XML format, on the server side.
  • Tiny Ajax.

    A small PHP 5 class.

Java frameworks

Java is the programming language that is the more often used to build web services.

A Java framework permit to use Java web services interactively with a web page.

The more commonly used are:
  • DWR (Direct Web Remoting).

    Allows to use Java functions as if they are part of the browser, from HTML code, thanks to its interface. A JavaScript part is used to update the page and another to get data with servlets.

    The technique is in generating in real time Java code from JavaScript code, send it to the server and run it.
  • GoogleWeb Toolkit.

    A toolbox to develop Java applications, that are then compiled into JavaScript code, and this code processes the HTML page through DOM methods.
Legacy Java software for the web now is moving to Ajax. JavaServer Facesnow includes Ajax features. ThinWire takes a unique approach in that the application is written as if it was a desktop software. All the logic executes on the server, the framework encapsulates the web rendering and communication layers.

.NET frameworks

  • Microsoft Ajax Library (formerly ATLAS) is made of a client side part: Microsoft AJAX Library, and a server side part: ASP.NET 2.0 Ajax Extensions. But a component library is also provided with graphical widgets: ASP.NET Ajax Control Toolkit.
  • Ajax.NET Professional "serialize" (convert and store) .NET data to the JSON format.

ColdFusion frameworks

Libraries include:
  • AjaxCFC.
    An object oriented framework that provides developers seamless integration between JavaScript and ColdFusion, and built-in security and debugging functions.
  • CFAjax.
    Implements Ajax in such a way that ColdFusion method calls on the server gets executed using JavaScript a la Ajax.
  • JSMX. JSMX API
    runs entirely on the client and has no Server Side Components to install. Apart ColdFusion, is extended to support also XML, JSON, and WDDX or even JavaScript on the server side from JavaScript requests on the client side.

Ajax and XUL

Ajax make use of the JavaScript programming language, and XUL embeds also JavaScript into XML to define the interaction with the graphical user interface. The two systems work on the Firefox browser. The first one allows to communicate with the server from a remote web page, the second one displays an interface either in a local computer or through the net, with the same browser.

The main difference is in the use of Canvas (HTML tag) to extend Ajax and to extend XUL, XPCom and XBL.
  • ZK.

    Framework designed for allowing Ajax and XUL to communicate.

Resources

Article from http://www.xul.fr/ajax-frameworks.html