r50 - 14 Apr 2010 - 12:33:18 - JashuaNetYou are here: OSAF >  Projects Web  >  CosmoHome > CosmoDevelopmentHome > AjaxLibraries

Survey of AJAX/JavaScript Libraries

Please note these libraries appear in alphabetical order. If you're adding one to this list, please add it in alphabetical order rather than sticking it at the top.

AjaxAnywhere

http://ajaxanywhere.sourceforge.net/

License: Apache 2

Description: AjaxAnywhere is a simple way to enhance an existing JSP/Struts/Spring/JSF application with AJAX. It uses AJAX to refresh "zones" on a web page, therefore AjaxAnywhere doesn't require changes to the underlying code, so while it's more coarse than finely-tuned AJAX, it's also easier to implement, and doesn't bind your application to AJAX (i.e., browsers that don't support AJAX can still work.). In contrast to other solutions, AjaxAnywhere is not component-oriented. You will not find here yet another AutoComplete component. Simply separate your web page into multiple zones, and use AjaxAnywhere to refresh only those zones that needs to be updated.

Pros:

  • Less JavaScript to develop and to maintain. Absence of commonly accepted naming convention, formatting rules, patterns makes JavaScript code messier then Java/JSP. It is extremely difficult to debug and unit-test it in multi-browser environment. Get rid of all those complexities by using AjaxAnywhere.
  • Easy to integrate. AjaxAnywhere does not require changing the underlying application code.
  • Graceful degradation and lower technical risk. Switch whenever you need between AJAX and traditional (refresh-all-page) behaviour of your web application. Your application can also support both behaviors.
  • Free open source license.

Cons:

  • AjaxAnywhere? is not as dynamic as pure-JavaScript AJAX solutions. Despite that AjaxAnywhere will probably cover your basic needs, to achieve certain functionality you might need to code some JavaScript.
  • Today, you can only update a set of complete DHTML objects without breaking then apart. For example, you can update a content of a table cell or the whole table, but not the last row, for example. In later versions, we plan to implement partial DHTML update, as well.

ajaxCFC

http://www.robgonda.com/blog/projects/ajaxcfc/

License: Apache 2.0

Description: ajaxCFC is a ColdFusion? framework meant to speed up ajax application development and deployment by providing developers seamless integration between JavaScript and ColdFusion?, and providing built-in functions to quickly adapt to any type of environment, security, and helping to overcome cross-browser compatibility problems.

ajaxCFC is designed as ColdFusion? components, following the best practices of object oriented programming and design patterns. Programming with ajaxCFC involves extending components and creating your own ajax facades.

Pros:

  • Works with ColdFusion? MX 6.0, 6,1, 7.0, Scorpio, and BlueDragon?.
  • Integration with Model-Glue and MachII?, two of the most popular MVC frameworks widely used by the ColdFusion? community.
  • Supports many browsers including FF/Moz, IE5.5+, Safari/Konq, Opera and IE with Active-X turned off via iframe fallback
  • Automatically handles complex object transmitted from the client to the server and vice versa.
  • Optional use of XML Sockets to push data from the server.
  • Built-in security add-ons.
  • Hosted now by Adobe's RIAForge
  • Licensed under the Apache License Version 2.0, by Rob Gonda.

AjaxTags component of Java Web Parts

http://javawebparts.sourceforge.net

License: Apache 2

Description: AjaxTags was originally an extended version of the Struts HTML taglib, but was made into a generic taglib (i.e., not tied to Struts) and brought under the Java Web Parts library. AjaxTags is somewhat different from most other Ajax toolkits in that it provides a declarative approach to Ajax. You configure the Ajax events you want for a given page via XML config file, including what you want to happen when a request is sent and when a response is received. This takes the form of request and response handlers. A number of rather useful handlers are provided out-of-the-box, things like updating a <div>, sending a simple XML document, transforming returned XML via XSLT, etc. All that is required to make this work on a page is to add a single tag at the end, and then one following whatever page element you want to attach an Ajax event to. Any element on a page can have an Ajax event attached to it. If this sounds interesting, it is suggested you download the binary Java Web Parts distro and play with the sample app. This includes a number of excellent examples of what AjaxTags can do.

Pros:

  • There is no Javascript coding required, unless you need or want to write a custom request/response handler, which is simply following a pattern.
  • Very easy to add Ajax functions to an existing page without changing any existing code and without adding much beyond some tags. Great for retroactively adding Ajax to an app (but perfect for new development too!)
  • Completely declarative approach to Ajax. If client-side coding is not your strong suite, you will probably love AjaxTags.
  • Has most of the basic functions you would need out-of-the-box, with the flexibility and extensibility you might need down the road.
  • Cross-browser support (IE 5.5+ and FF 1.0.7+ for sure, probably some older versions too).
  • Is well-documented with a good example app available.

Cons:

  • Because it's a taglib, it is Java-only.
  • Doesn't provide pre-existing Ajax functions like many other libraries, things like Google Suggests and such. You will have to create them yourself (although AjaxTags will make it a piece of cake!). Note that there are some cookbook examples available that shows a type-ahead suggestions application, and a double-select population application. Check them out, see how simple they were to build!
  • AjaxTags says absolutely nothing about what happens on the server, that is entirely up to you.
  • Might be some slight confusion because there is another project named AjaxTags at SourceForge. The AjaxTags in Java Web Parts existed first though, and in any case they have very different focuses. Just remember, this AjaxTags is a part of Java Web Parts, the other is not.

AJS

http://orangoo.com/labs/AmiNation/AJS/

License: MIT.

Description: AJS is a ultra lightweight JavaScript library. It's only about 30 KB. AJS main force is performance - both in execution and file size. It has a lot of functionality in common with MochiKit?.

Pros:

  • AJAX support
  • Drag and drop support
  • One namespace
  • Documentation and examples on most important functions
  • Polymorphic - A Python script can scan your code, find the AJS functions you use and create a special AJS file for you that is much smaller
  • Supports latest IE, Firefox, Safari and Opera browsers

Cons:

  • Does not support old browsers (like Netscape 4 or IE 5)
  • Limited visual effects

Anaa

http://www.anaa.eu

License: Mozilla 1.1.

Description: Anaa means for An Ajax API and is a simple but complete framework built around XMLHttpRequest?. Anaa does support GET and POST methods. Plain Text (including JSON) and XML file are handled.

Pros:

  • Easy to understand. This allows to extend the library with personal features more easily.
  • Complete for a such simple library.
  • Good documentation.
  • JavaScript only. Compatible with any server-side language.
  • Pretty website!

Cons:

  • Rather minimal for now. There are projects to extend it with optional modules.

DHTMLX

http://dhtmlx.com/

License: GPL, commercial

Description: DHTMLX is a JavaScript library of Ajax-enabled user interface components for building feature rich web applications. It includes the most widely-used types of UI components: grid, treegrid, treeview, combobox, tabbar, menu, windows, calendar, layout, and more.

Pros:

  • cross-browser compatibility (IE, FF, Opera, Safari, Google Chrome);
  • detailed documentation + lots of samples;
  • rich JavaScript API;
  • special techniques for handling huge datasets;
  • built-in mechanism for client-server communication;
  • drag-n-drop, in-line editing, clipboard operations;
  • XML/CSV/JSON support.

Cons:

  • some advanced functionality is available in commercial version only;
  • big size of full package.

Dojo

http://dojotoolkit.org/

License: Academic Free License v 2.1.

Description: Dojo is an Open Source effort to create a UI toolkit that allows a larger number of web application authors to easily use the rich capabilities of modern browsers.

Pros:

  • Dev roadmap encompasses a broad range of areas needed to do browser-based app development -- Even the 0.1 release includes implementations of GUI elements, AJAX-style communication with the server, and visual effects.
  • Build system uses Ant, so core devs seem to be on friendly terms with Java.
  • Browser compatibility targets are: degrade gracefully in all cases, IE 5.5+, Firefox 1.0+, latest Safari, latest Opera
  • Most core parts of the system are unit tested (an unit tests are runnable at the command line)
  • Includes package system and build system that let you pull in only what you need
  • Comprehensive demo at http://archive.dojotoolkit.org/nightly/tests/

Cons:

DotNetRemoting Rich Web Client SDK for ASP.NET

http://www.dotnetremoting.com

License: - commercial license

Description: Rich Web Client SDK is a platform for developing rich internet applications (including AJAX). The product is available for .NET environment and includes server side DLL and a client side script

Pros:

  • No need for custom method attributes, special signatures or argument types. Does not require stub or script generation.
  • Available for .NET
  • Automatically generates the objects from the existing .Net classes.
  • Supports Hashtable and ArrayList? on the client
  • The client and the server objects are interchangeable
  • Can Invoke server methods methods from the client with classes as arguments
  • Very easy to program
  • Professional support

Cons:

  • Lacks out of the box UI components.

DWR

http://www.getahead.ltd.uk/dwr/

License: Apache 2.0

Description: DWR (Direct Web Remoting) is easy AJAX for Java. It reduces development time and the likelihood of errors by providing commonly used functions and removing almost all of the repetitive code normally associated with highly interactive web sites.

Pros:

  • Good integration with Java.
  • Extensive documentation.
  • Supports many browsers including FF/Moz, IE5.5+, Safari/Konq, Opera and IE with Active-X turned off via iframe fallback
  • Integration with many Java OSS projects (Spring, Hibernate, JDOM, XOM, Dom4J)
  • Automatically generated test pages to help diagnose problems

Cons:

  • Java-exclusive -- seems to be Java code that generates JavaScript. This limits its utility in non-Java environments, and the potential reusability by the community.

Fleegix.js

http://js.fleegix.org/

License: Apache License, Version 2.

Description: Fleegix.js provides a lightweight, cross-browser set of JavaScript tools for building dynamic Web-app UIs.

Includes a concise but powerful events system, an industrial-strength XHR library, a simple, no-muss-no-fuss XML parser, and some handy tools for working with Web forms, as well as other basic tools you need to build an Ajaxy Web UI.

Compatibility: It is well tested in the major-market-share browsers -- Firefox 1+, Internet Explorer 6+, and Safari 2.

Disclaimer: Fleegix.js is used in OSAF's Windmill Web UI testing framework.

JsHttpRequest

http://en.dklab.ru/lib/JsHttpRequest/

License: LGPL

Pros:

  • Excellent cross-browser compatibility (e.g. works with IE 5.0 with disabled ActiveX).
  • Support and "transparent" work with any character encoding (including any national).
  • AJAX file uploads from a user browser to the server without a page reloading.
  • Full support of PHP debug features and coding traditions.
  • Multi-dimensional data structures exchange (associative arrays).
  • Automatic choice of the best AJAX realization (XMLHttpRequest, SCRIPT, IFRAME).
  • XMLHttpRequest-compatible interface is available.

The main idea of JsHttpRequest is to be simple and transparent for all programmers and habitual programming techniques.

  • PHP notices and errors (including fatal) are not break the script execution;
  • there is no need of any framework (e.g. classes) to build a server part;
  • PHP arrays are converted to JS objects and back fully transparently;
  • forget about national encodings problems (e.g. works with windows-1251 on PHP part).

Examples:

 // JavaScript code:
 JsHttpRequest.query(
     'your_ajax_script.php',
     {
         first: 'Dmitry',  
         last: 'Koterov',
         file: document.getElementById("my_upload_file")
     },
     function(result, debugMessages) {
         document.getElementById("result").innerHTML = result.text; 
         if (debugMessages) alert(debugMessages);
     }
 );

 // PHP code:
 require_once "lib/JsHttpRequest.php";
 $JsHttpRequest =& new JsHttpRequest("windows-1251");
 $_RESULT['text'] = "Hello, {$_REQUEST['first']} {$_REQUEST['last']}!";
 echo "Any debug message or even a fatal PHP error";

Cons:

  • Interface of the library is low-level. It is not a framework, but a library.
  • Except PHP, no other official backend languages supported.

JSON-RPC-JAVA

http://oss.metaparadigm.com/jsonrpc/index.html

License: JSON-RPC-Java is licensed under the LGPL which allows use within commerical/proprietary applications (with conditions).

Description: JSON-RPC-Java is a key piece of Java web application middleware that allows JavaScript DHTML web applications to call remote methods in a Java Application Server (remote scripting) without the need for page reloading (as is the case with the vast majority of current web applications). It enables a new breed of fast and highly dynamic enterprise Java web applications (using similar techniques to Gmail and Google Suggests).

Pros:

  • Exceptionally easy to use and setup
  • Transparently maps Java objects to JavaScript objects.
  • Supports Internet Explorer, Mozilla, Firefox, Safari, Opera and Konqueror

Cons:

  • JavaScript Object Notation can be difficult to read
  • Possible scalability issues due to the use of HTTPSession

MochiKit

http://mochikit.com/

License: MIT or Academic Free License, v2.1.

Description: "MochiKit makes JavaScript suck less." MochiKit is a highly documented and well tested, suite of JavaScript libraries that] will help you get shit done, fast. We took all the good ideas we could find from our Python, Objective-C, etc. experience and adapted it to the crazy world of JavaScript.

Pros:

  • Test-driven development -- "MochiKit has HUNDREDS of tests."
  • Exhaustive documentation -- "You're unlikely to find any JavaScript code with better documentation than MochiKit. We make a point to maintain 100% documentation coverage for all of MochiKit at all times."
  • Scriptaculous-style visual effects
  • Supports latest IE, Firefox, Safari browsers

Cons:

  • Support for IE is limited to version 6. According to the lead dev on the project, "IE 5.5 might work with a little prodding."
  • Scriptaculous-style visual effects are still in beta

My Library

http://www.cinsoft.net/mylib.html

License: Free for non-commercial use. Commercial licenses available.

Description: My Library is a comprehensive, modular browser scripting library. Unlike similar libraries, it is based on feature detection and testing, rather than technically baseless browser sniffing. Some of the areas covered are Ajax, animations, audio, CSS selector queries, DOM manipulation, drag and drop, event normalization, forms and Flash. The script was written by David Mark.

Pros:

  • Modular
  • No browser sniffing
  • Compatible with virtually any past, present or future user agent
  • Supports both HTML and XHTML DOM's
  • Supports frames
  • Simplifies feature detection for calling applications
  • Very efficient and speedy DOM traversal (see speed test for comparison to similar libraries)
  • Online builder application
  • Optional OOP interface is overlaid, rather than tangled up in the functional API

Cons:

  • Relatively new and officially still a Beta (though much of the code has been used in production environments)
  • Documentation is unfinished

Plex Toolkit

http://www.plextk.org - see http://www.protea-systems.com (and view source!) for sample site

License: - LGPL or GPL (optional)

Description: Open source feature-complete DHTML GUI toolkit and AJAX framework based on a Javascript/DOM implementation of Macromedia's Flex technology. Uses the almost identical markup language to Flex embedded in ordinary HTML documents for describing the UI. Binding is done with Javascript.

Pros:

  • Full set of widgets such as datagrid, tree, accordion, pulldown menus, DHTML window manager, viewstack and more
  • Markup driven (makes it easy to visually build the interface)
  • Interface components can be easily themed with CSS
  • Client side XSLT for IE and Mozilla
  • Well documented with examples.
  • Multiple remoting transport options - XMLHttpRequest?, IFrame (RSLite cookie based coming soon)
  • Back button support
  • Support for YAML serialization

Cons:

  • Lacks animation framework.

PokeIn?

http://pokein.codeplex.com

License: - GPL v2

Description: Comet Ajax library for .Net , defines server side objects on client side and every server object knows the owner client. Its very easy to convert exist ASP.NET applications to use this library.

Pros:

  • Call server side (static/dynamic) methods directly (DWR like .NET ajax! but eaiser and painless)
  • You dont have to focus or worry about AJAX or Serialization
  • Auto organized client based objects!
  • Easy but powerfull settings
  • Lightweight and cross-browser!
  • Server CPU Friendly
  • Multi user in Multi thread safely

Cons:

  • New

Prototype

http://prototype.conio.net/

License: MIT

Description: Prototype is a JavaScript framework that aims to ease development of dynamic web applications. Its development is driven heavily by the Ruby on Rails framework, but it can be used in any environment.

Pros:

  • Fairly ubiquitous as a foundation for other toolkits -- used in both Scriptaculous and Rico (as well as in Ruby on Rails)
  • Provides fairly low-level access to XMLHttpRequest
  • Now well documented (officially) at [[http://prototypejs.org] [PrototypeJS.org]]
Cons:
  • IE support is limited to IE6.
  • Has no visual effects library (but see Scriptaculous)
  • Has no built-in way of acessing AJAX result as an XML doc.
  • Modifications to Object.prototype apparently cause issues with for/in loops in interating through arrays. I could not find any information to indicate that this problem has been fixed.

Rialto

http://rialto.application-servers.com/

License: Apache 2.0

Description: Rialto is a cross browser javascript widgets library. Because it is technology agnostic it can be encapsulated in JSP, JSF, .Net or PHP graphic components.

Pros:

  • Technology Agnostic
  • Finition of widgets
  • Vision of the architecture
  • Tab drag and drop

Cons:

  • Scant documentation -- currently consists of two PDFs and a single Weblog entry.
  • Supports IE6.x and Firefox 1.x.
  • Documentation

Rico

http://openrico.org/

License: Apache 2.0

Description: An open-source JavaScript library for creating rich Internet applications. Rico provides full Ajax support, drag and drop management, and a cinematic effects library.

Pros:

  • Corporate sponsorship from Sabre Airline Solutions (Apache 2.0 License). This means that the code is driven by practical business use-cases, and user-tested in commercial applications.
  • Extensive range of functions/behaviors.

Cons:

  • Scant documentation -- currently consists of two PDFs and a single Weblog entry.
  • Supports IE5.5 and higher only. Also, no Safari support. From the Web site: "Rico has been tested on IE 5.5, IE 6, Firefox 1.0x/Win Camino/Mac, Firefox 1.0x/Mac. Currently there is no Safari or Mac IE 5.2 support. Support will be provided in a future release for Safari."
  • Has no built-in way of acessing AJAX result as an XML doc.
  • Drag-and-drop apparently broken in IE (tested in IE6)

SAJAX

http://www.modernmethod.com/sajax/

License: BSD

Description: Sajax is an open source tool to make programming websites using the Ajax framework — also known as XMLHTTPRequest or remote scripting — as easy as possible. Sajax makes it easy to call PHP, Perl or Python functions from your webpages via JavaScript without performing a browser refresh. The toolkit does 99% of the work for you so you have no excuse to not use it.

Pros: Supports many common Web-development languages.

Cons:

  • Seems limited just to AJAX -- i.e., XMLHttpRequest. No visual effects library or anything else.
  • Integrates with backend language, and has no Java or JSP support.

Sardalya

http://www.sarmal.com/sardalya/

License: free for uncommercial use; almost free for commercial use.

Description: s@rdalya, is a cross-browser interface that aims to make dynamic HTML programming easy and fun. It is a cross-browser compatible system which is designed to work in all DOM-supporting browsers.

Though the developer doesn't test on a Mac, I encountered no problems viewing all of the many DHTML samples he provides. Sardalya includes Ajax functions as well as a comprehensive DOM-based DHTML library.

The library received an "A grade" from musingsfrommars.org: http://www.musingsfrommars.org/2006/03/ajax-dhtml-library-scorecard.html

In its blog, the developer says that the next version of the library will include:

  • A better AJAX integration.
  • And more objects to play with(such as Effect object for scheduled transitions such as background fades, or ModalDialog? object which generates a DOM generated modal dialog, which is a cross-browser DOM-implementation of IE's modal dialog, which is not being used much because it is vendor-specific and not supported in other browsers.

Pros:

  • Object-oriented.
  • Flexible, easily extendible.
  • Works in almost any modern browser.
  • Independent of OS.
  • Lightweight when you consider what is does.

Cons:

  • Since it is being constantly developed, the documentation may not be in sync with the most recent version. However viewing the sources of examples are adequate to learn how to use the API.

Scriptaculous

http://script.aculo.us/

License: MIT

Description: Script.aculo.us provides you with easy-to-use, compatible and, ultimately, totally cool! JavaScript libraries to make your web sites and web applications fly, Web 2.0 style. A lot of the more advanced Ajax support in Ruby on Rails (like visual effects, auto-completion, drag-and-drop and in-place-editing) uses this library.

Pros:

  • Well-designed site actually has some reference materials attached to each section.
  • Lots of neat visual effects.
  • Simple and easy to understand object-oriented design.
  • Although developed together with Ruby on Rails it's not dependent on Rails at all, has been used successfully at least in Java and PHP projects and should work with any framework.
  • Because of the large user-group coming from Ruby on Rails it has very good community support.

Cons:

  • No IE5.x support -- see Prototype -- Cons 1., above. (Edit July 22, 2006: IE5 is now supported. See website.)

Sombrero

http://www.sombrerosoft.de/

License: Sombrero license

Description: Sombrero ist a german Java software development framework that allows web developers to create "MDI"-web pages for database applications.

Pros: Very good GUI controls

Cons:

  • tutorial is in german language

SmartClient from Isomorphic Software

http://www.smartclient.com/

License: LGPL with commercial licenses available

Description: SmartClient is the cross-platform AJAX RIA system chosen by top commercial software vendors, on-demand service providers, and enterprise IT developers for thousands of deployments since 2000.

SmartClient provides a complete application stack, from rich, skinnable, extensible RIA components to declarative databinding and SOA integration, paired with a mature, searchable documentation suite and integrated tooling.

SmartClient AJAX applications run on Internet Explorer, Mozilla, Netscape, Firefox, and Safari web browsers, on Windows, MacOS, Linux, and Solaris. A Java integration server is provided with the commercial license, and SmartClient can also be integrated directly with any XML or JSON-based service without need of a server. Visit SmartClient.com for hundreds of live examples, browseable documentation and a downloadable SDK.

Pros:

  • Proven in the world's most sophisticated AJAX applications
  • Excellent documentation
  • Extensible; build new components out of existing components without DHTML experience
  • Broadest browser and platform support
  • Declarative integration with web services
  • Skinning, drag and drop and animation effects

Cons:

  • Large download (but provides modular delivery and background download features)
  • No Opera support yet

TIBCO General Interface (AJAX RIA Framework and IDE since 2001)

http://developer.tibco.com

TIBCO General Interface is a mature AJAX RIA framework that's been at work powering applicaitions at Fortune 100 and US Government organziations since 2001. Infact the framework is so mature, that TIBCO General Interface's visual development tools themselves run in the browser alongside the AJAX RIAs as you create them.

See an amazing demo in Jon Udell's coverage at InfoWorld?. http://weblog.infoworld.com/udell/2005/05/25.html

You can also download the next version of the product and get many sample applications from their developer community site via https://power.tibco.com/app/um/gi/newuser.jsp

Pros:

  • Dozens of types of extensible GUI components
  • Vector based charting package
  • Support for SOAP communication (in adiition to your basic HTTP and XML too)
  • Full visual development environment - WYSIWYG GUI layouts - step-through debugging - code completion - visual tools for connecting to services
  • An active developer community at http://power.tibco.com/GI

Cons:

  • Firefox support is in the works, but not released yet making this still something for enterprises to use where Internet Explorer is on 99.9% of business user desktops, but probably not for use on web sites that face the general population.

More info at http://developer.tibco.com

Visual WebGui? (The .NET answer to Google's GWT that extends WinForms? over ASP.NET)

http://www.visualwebgui.com

Visual WebGui? (VWG) is an open source AJAX framework with a growing community that extends ASP.NET with the WinForms? programming model.

VWG provides an alternative to ASP.NET's page model in the form of WinForms? forms and form events. Since VWG, like most .NET AJAX frameworks, is implemented using an IHttpHandler?, it can still interact with ASP.NET pages enabling usage of VWG within an existing ASP.NET site.

VWG features:

  • AJAX application development using WinForms? development patterns and practices with no prior AJAX (or web development) skills.
  • WinForms? controls (most of .NET 2.0 controls) implemented for VWG.
  • Ability to create custom controls (including full inheritance).
  • Ability to interoperate with existing ASP.NET controls and pages.
  • Ability to customize control behavior and appearance.
  • .NET 1.x/2.0 support.
  • An active developer community at http://www.visualwebgui.com/tabid/53/Default.aspx

VWG unlike GWT:

  • Does not generate JavaScript code – debugging is done within the server-based .NET code that executes in runtime.
  • Does not run application logic on the client – all processing is done on the server.
  • Does not expose unnecessary services to the client – server sends UI updates / client sends user event queues.
  • Results in a thin client rather than a fat client.
  • Is based on a familiar WinForms? object model.
  • Is provided with full WinForms? like design time capabilities.

See an rich demo can be found here: http://samples.visualwebgui.com/mainforms.wgx

You can also download the framework and sample projects from: http://www.visualwebgui.com/tabid/110/Default.aspx

More info at http://www.visualwebgui.com

xWire

http://xwire.solutionPioneers.com

License: Apache V2.0

Description: xWire is a mature, object-oriented, enterprise-class toolkit that consists of both client (browser) and server (Java) editions. You can use either or both editions depending upon your environment. xWire was originally built back in 2001 and originally supported only IE5. Support has expanded to IE6, IE7 and Firefox. Opera support is coming soon. You can literally write enterprise-class AJAX applications that work in all of the supported browsers. We have lots of features that can be independently used as desired on both the client and the server. Additionally, COMET support is on the way.

Client Features:

  • Simple API for cross browser functionality including XmlHttp?, DOM, XPath, XSLT
  • Completely object-oriented using Javascript classes
  • Configurable logging mechanism
  • Incredibly flexible event mechanism
  • Includes some great widgets such as a hierarchical tree and notebook
  • XML form binding for easily copying HTML form field values to/from one or more XML documents
  • Working examples
  • Frequent enhancements
  • Well documented with meaningful and thorough comments throughout the code

Server Features:

  • Mature toolkit (originally written in 2001)
  • Ideal for building the server side of an AJAX client application
  • Can be used for most any Java application including web and desktop
  • Seamless integration with several open source toolkits including Struts, iBatis, Log4J, Commons Configuration, Xalan and XStream
  • Provides for Struts actionless development
  • Well designed and well layered
  • Scalable and stable
  • Innovative features include XML streaming into and out of the server and Javascript Bundles
  • Collection of useful standalone services that can be used together or separately
  • Can be used in conjunction with the xWire client
  • Pick and choose which features to use
  • Working examples
  • Frequent enhancements
  • Well documented with meaningful and thorough comments throughout the code

WebORB

http://www.themidnightcoders.com

License: Standard Edition is free, Professional Edition - commercial license

Description: WebORB is a platform for developing AJAX and Flash-based rich internet applications. The product is available for Java and .NET environments and includes a client side toolkit - Rich Client System to enable binding to server side objects (java, .net, web services, ejb, cold fusion), data paging and interactive messaging.

Pros:

  • Zero-changes deployment. Does not require any modifications on the server-side code, no need for custom method attributes, special signatures or argument types. Does not require stub or script generation.
  • Available for Java and .NET
  • One line API client binding. Same API to bind to any supported server-side type. Generated client-side proxy object have the same methods as the remote counter parts
  • Automatically adapts client side method arguments to the appropriate types on the server. Supports all possible argument types and return values (primitives, strings, dates, complex types, collections, data and result sets). Server-side arguments can be interfaces or abstract types
  • Includes a highly dynamic message server to allow clients to message each other. Server side code can push data to the connected clients (both AJAX and Flash)
  • Supports data paging. Clients can retrieve large data sets in chunks and efficiently page through the results.
  • Extensive security. Access to the application code can be restricted on the package/namespace, class or method level.
  • Detailed documentation.
  • Professional support

Cons:

  • Lacks out of the box UI components.

Zimbra

http://www.zimbra.com/

License: Zimbra Ajax Public License ZAPL (derived from Mozilla Public License MPL)

Description: Zimbra is a recently released client/server open source email system. Buried deep within this product is an excellent Ajax Tool Kit component library (AjaxTK?) written in Javascript. A fully featured demo of the product is available on zimbra.com, and showcases the extensive capabilities of their email client. A very large and comprehensive widget library as only avialable in commercial Ajax toolkits is now available to the open source community. Download the entire source tree to find the AJAX directory which includes example applications.

Pros:

  • Full support of drag and drop in all widgets. Widgets include data list, wizard, button, text node, rich text editor, tree, menus, etc.
  • Build system uses Ant and hosting is based on JSP and Tomcat.
  • Very strong client-side MVC architecture based; architect is ex-Javasoft lead developer.
  • Communications support for client-side SOAP, and XmlHttpRequest? as well as iframes.
  • Support for JSON serialized objects, and Javascript-based XForms.
  • Strong muli-browser capabilities: IE 5.5+, Firefox 1.0+, latest Safari
  • Hi quality widgets have commercial quaility since this is a commerical open source product.
  • Widget library is available as a separate build target set from the main product.
  • Debugging facility is built in to library, displays communications request and response.
  • License terms making it suitable for inclusion in other commercial products free of charge.

Cons:

  • Does not currently support: Keyboard commands in menus, in-place datasheet editing.
  • Does not support gracefull degradation to iframes if other transports unavailable.
  • Documentation is lacking, but PDF white paper describing widget set and drag and drop is available.

Others

Bling!

http://bcsaller.blogspot.com/2005/12/bling.html http://darcs.objectrealms.net/darcsweb.cgi/bling

Description: MochiKit?, Prototype, Scripaculous and OpenRico? wrapped up into one package for Plone, isolating web developers from writing and debugging JS.

Xajax

http://xajax.sourceforge.net/

Description: PHP-centric, looks very new

License: LGPL

SACK

http://twilightuniverse.com/projects/sack/

Description: New, limited feature set

License: modified X11

ZK

http://www.zkoss.org

Description: ZK is an open-source Ajax Web framework that enables rich user interface for Web applications with little programming

Licsense: Open Source

There is another excellent and comprehensive list of libraries at EDevil's Weblog.

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r50 < r49 < r48 < r47 < r46 | More topic actions
 
Open Source Applications Foundation
Except where otherwise noted, this site and its content are licensed by OSAF under an Creative Commons License, Attribution Only 3.0.
See list of page contributors for attributions.