Section A.1. JavaScript Multipurpose Frameworks


A.1. JavaScript Multipurpose Frameworks

These are pure-JavaScript libraries used to achieve a range of functionality in the browserusually in a manner that protects you from dealing with browser compatibility issues, as described in Cross-Browser Component (Chapter 12). The Prototype framework has been very popular for general JavaScript infrastructure, and many frameworks mentioned here build on it. At a higher level, Dojo and Scriptaculous are probably the two best known products here and are good options if you're looking for a multipurpose library. Along those lines, Mochikit and OpenRico have also been popular as well. In the commercial space, there's been a lot of interest in Backbase and Tibco General Interface, though the products here are so varied, it really depends where you look.

A.1.1. AjaxFace (from 2005)

AjaxFace (http://www.vertexlogic.com) is an Ajax, JavaScript UI framework.

  • High-level JavaScript API for building UI

  • Open architecture for updating and retrieving data from the backend

  • Automatic synchronization of data and UI

  • Easy extensibility

  • High performance

  • Easy customization of look-and-feel through well-defined stylesheets

  • Online demo (http://www.vertexlogic.com/demo.html)

  • Commercial license by VertexLogic

A.1.2. Backbase (from 2003)

Backbase (http://www.backbase.com) is a comprehensive browser-side Ajax framework with cross-browser support. The Backbase Ajax framework is compatible with any server-side platform (e.g., Java, .NET, PHP, or Coldfusion).

  • Free community edition for noncommercial/noninstitutional use

  • Advanced tooling for .NET developersVisual Studio 2005 plugin

  • Advanced tooling for Java developersJSF taglib/Eclipse integration

  • Over 80 Ajax widgets/components at Backbase Explorer (http://www.backbase.com/demos/explorer/)

  • Active Ajax developer community at Backbase DevNet (http://www.backbase.com/#dev/home.xml)

  • Online Ajax demos/starter kits at Check Out (http://www.backbase.com/#home/pulldown/demos.xml)

  • Commercial license by Backbase (formed in 2003)

A.1.3. Bindows (from 2003)

Bindows (http://www.bindows.net) is a software development kit (SDK) that generates highly interactive Internet applications with richness that rivals modern desktop applications using the strong combination of DHTML, JavaScript, CSS, and XML. Bindows applications require no downloads and no installation on the user sideonly a browser is required (no Java, Flash, or ActiveX are used). Bindows is probably the leading object-oriented platform for developing Ajax applications.

The Bindows Framework provides you with the following:

  • A class-based, object-oriented API

  • A complete windowing system with a wide array of supported widgets including menus, forms, grids, sliders, gauges, and more

  • The leading toolkit for developing zero-footprint SOA client-side applications

  • Native XML, SOAP, and XML-RPC support

  • Single-user to enterprise-level support

  • Built-in support for Ajax

The Bindows development environment includes:

  • Enterprise scale projects support

  • Cross-browser, cross-platform support

  • Server independent architecture

  • Interoperability with new and existing resources

  • Uniform development methodology

  • Commercial license, by MB Technologies (based in GA, USA, with the main development center in Sweden, formed in 2002)

A.1.4. Dojo (from September, 2004)

Dojo (http://dojotoolkit.org/) offers comprehensive widget and browser-server messaging support:

  • Extensive deployment support such as dependency-based packaging and compression of required libraries into a single download (see On-Demand JavaScript [Chapter 6]).

  • Framework for creation of custom JavaScript widgets

  • Library of pre-built widgets

  • Solid drag-and-drop, effects, and generic animation support

  • Browser-server messaging support such as XMLHttpRequest and other mechanisms

  • Event management (see Distributed Events [Chapter 10])

  • Support for bookmarkability and manipulating URLs in the browser

  • Open source license (Academic Free License 2.1); led by Alex Russell (http://alex.dojotoolkit.org/) of JotSpot (http://www.jot.com/)

A.1.5. eBusiness Applications (EBA) Ajax Components (from 2002)

EBA (http://www.ebusiness-apps.com/) offers self-contained Ajax components enabling data entry and lookup:

  • Library of prebuilt widgets supporting multiple backends (Java, PHP, ASP, and .NET)

  • Excel-like data entry and grid tool (see Data Grid [Chapter 14])

  • Multimode combo box enabling configurable livesearching (Smartsearching, autocomplete, compact, etc.; see Live Search and Suggestion [Chapter 14])

  • Active user community (EBA Developer Forums at http://forums.ebusiness-apps.com)

  • Online Ajax demos (EBA Grid at http://developer.ebusiness-apps.com/technologies/webdevelopment/codeandcomponents/ebagrid/productdemos/griddemos.htm)

  • Commercial license by eBusiness Applications

A.1.6. Engine for Web Applications (from 2002)

Engine for Web Applications (http://www.imnmotion.com/projects/engine/) is a framework for building modular components for web applications and separating content from functionality:

  • Configurable deployment

  • Registry for storing, retrieving, and destroying objects that conform to the common interface

  • Message service for intraobject publications and subscriptions

  • Transaction service for asynchronous multiobject communication

  • Task service for bootstrapping client-side modules of a web application and for creating dependency-based task lists; can load an XML-based task.

  • Ability to easily create scoped and redistributable components in XML with automatic event hook-up and containment

  • Store and retrieve form field values regardless of whether the form field still exists

  • Monitor service for easily creating beacon and Ajax monitoring solutions

  • API Documentation (http://www.imnmotion.com/projects/engine/api/engine_api.html)

  • Demonstrations with source (http://www.imnmotion.com/projects/engine/demonstrations/)

  • Open source license (custom license) by Stephen W. Cote (http://www.imnmotion.com/)

A.1.7. Framework for RESTful JavaScript (Freja) (from 2006)

Freja (http://www.csscripting.com/freja) is a JavaScript MVC (Model-View-Controller) framework:

  • Geared toward single-screen, zero-latency web applications.

  • Excellent scalability (much less server roundtrips).

  • True MVC separation.

  • True server-side/client-side code separation.

  • Very light footprint; only a handful of methods to learn (the framework is 25 KB uncompressed).

  • Based on Open Standards (XML/XSLT).

  • Works with any modern web browser: IE, Firefox, Safari, and Opera.

  • Plays well with other JavaScript toolkits and libraries (prototype, Scriptaculous, Dojo, etc.). Freja is not "yet another Ajax library"; it is a Ajax-based, high-level framework. It is not its purpose to provide drag-and-drop functionality or visual effects, but it will let you use your favorite JavaScript library to do so.

  • See Tutorials (http://www.csscripting.com/wiki/index.php?title=Freja#Tutorials) and Documentation (http://www.csscripting.com/wiki/index.php?title=Freja_Documentation).

  • Open source license (CC-GPL).

A.1.8. Mochikit (from 2005)

Mochikit (http://mochikit.com/) is a highly documented and well-tested suite of JavaScript libraries that will help you get your work done fast. Authors borrowed good ideas from Python, Objective-C, etc., and adapted them to JavaScript.

  • MochiKit.Async: manage asynchronous tasks

  • MochiKit.Base: functional programming and useful comparisons

  • MochiKit.DOM: painless DOM manipulation API

  • MochiKit.Color: color abstraction with CSS3 support

  • MochiKit.DateTime: "What time is it anyway?"

  • MochiKit.Format: string formatting goes here

  • MochiKit.Iter: itertools for JavaScript; iteration made HARD, and then easy

  • MochiKit.Logging: we're all tired of alert( )

  • MochiKit.LoggingPane: interactive MochiKit.Logging pane

  • MochiKit.Visual: visual effects

  • Open source license (MIT license or Academic Free License, v2.1) by Bob Ippolito

A.1.9. OpenRico (from May, 2005; based on earlier proprietary framework)

OpenRico (http://openrico.org/demos.page) is a multipurpose framework with support for Ajax infrastructure and user interaction.

  • An XMLHttpRequest response can be routed to one or more callback operations, DOM object, or JavaScript object

  • Easy drag-and-drop

  • Ajax animation such as scaling and transitions (and presumably the increasingly common idioms such as progress indicators and fading technique)

  • "Behaviors," which is essentially a widget library

  • External tutorial by Yonah Russ of Mirimar (http://www.mirimar.net/mailbrowser/)

  • Builds on prototype library

  • Open source license; grew from Sabre Airline Solutions internal product, by Bill Scott, Darren James, Richard Cowin, and others (http://looksgoodworkswell.blogspot.com)

A.1.10. Plex Toolkit

Plex Toolkit (http://www.plextk.org) is an open source feature-complete DHTML GUI toolkit and Ajax framework based on a pure JavaScript/DOM GUI tookit and Ajax framework. Uses the almost identical markup language to PXML (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 (over 60 libraries)

  • Markup driven (makes it easy to 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 such as XMLHttpRequest and IFrame (an RSLite cookie-based coming soon)

  • Back button support (complete history management for all components)

  • Support for YAML serialization

Cons:

  • No animation framework

  • Open source license (GPL, LGPL, or Artistic License; your choice) by Richard Hundt.

A.1.11. Prototype

Prototype (http://prototype.conio.net/) makes it easy to use object-oriented concepts like classes and inheritance within JavaScript. It also supports basic Ajax functionality such as web remoting.

  • A project run in conjunction with Ruby on Rails, but can be (and certainly is) used independent of Ruby or RoR

  • Open source license by Sam Stephenson

A.1.12. qooxdoo (from May, 2005)

qooxdoo (http://qooxdoo.oss.schlund.de/) is another ambitious framework with a broad range of UI and infrastructural features being developed.

Infrastructure:

  • Portable abstraction of the DOM and event/focus management

  • Debugging support

  • Timer class for easy scheduling

  • Getter/Setter support

UI:

  • Widget framework and library of prebuilt widgets

  • Layout managers

  • Image caching and portable PNG transparency

  • Open source license (LGPL) by various contributors

A.1.13. Script.aculo.us (from 2005)

Scriptaculous (http://script.aculo.us) builds on the Prototype library to provide a JavaScript with comprehensive Ajax coverage.

  • Visual Effects (see One-Second Spotlight [Chapter 16]).

  • Drag-And-Drop (see Drag-And-Drop [Chapter 15]).

  • Unit-Testing (see System Test [Chapter 19]).

  • Open source license by Thomas Fuchs and others. A project run in conjunction with Ruby on Rails, but can be (and certainly is) used independent of Ruby or RoR.

A.1.14. SmartClient (from 2000)

SmartClient (http://www.smartclient.com) from Isomorphic Software is a cross-platform Ajax RIA system.

Cross-browser foundation classes and services:

  • JSON or XML programming

  • Browser abstraction layer

  • GUI component services

  • Logging and debugging services

  • Extensible GUI components

  • Navigation and command controls

  • Form controls and managers

  • Flat, hierarchical, and multidimensional grids

  • Containers and layout managers

Data and services stack:

  • Client data caches and local operations

  • Client data model managers

  • Communication and protocol services

Visual development tools:

  • Runtime console.

  • Log viewer.

  • Component inspector and editor.

  • Admin console.

  • Integrated developer reference.

  • SmartClient Ajax applications run on Internet Explorer, Mozilla, Netscape, Firefox, and Safari web browsers, and on Windows, MacOS, Linux, and Solaris operating systems. Unlike other Ajax systems, SmartClient applications are fully functional even when ActiveX is disabled.

  • See www.smartclient.com for a product brief, live demos, and downloadable SDK.

  • Commercial license by Isomorphic Software.

A.1.15. ThyAPI (from end of 2004)

ThyAPI (http://www.sf.net/projects/thyapi/) is a library of DHTML reusable components. Ajax is only one of its features. Its main purpose is to allow the creation of full desktop-like applications in a browser. ThyAPI is a library based on DynAPI (http://www.sf.net/projects/dynapi/), and open source (LGPL).

  • Made entirely in DHTML (JavaScript + CSS).

  • Totally object-oriented and extensible.

  • Follows XMLRPC protocol, for data exchange with the server. Plans to implement JSON-RPC.

  • Interface definition entirely in CSS.

  • Works in Mozilla Firefox (version 1.0+)(http://www.mozilla.org) and Internet Explorer (version 6+).

  • A DataSource component, to simplify linking of JavaScript widgets with server methods.

  • Cross-browser, cross-platform support (it inherits this characteristic from DynAPI).

  • Aimed to provide RAD development of browser-based applications and reuse of custom-made widgets.

  • Open source license (LGPL).

A.1.16. TIBCO General Interface (from 2001)

TIBCO General Interface (http://www.tibco.com/software/business_optimization/rich_internet_applications.jsp) is a mature Ajax RIA framework that's been powering applications since 2001. In fact, 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.

  • Dozens of extensible GUI components.

  • Vector-based charting package.

  • Support for SOAP communication (in addition to basic HTTP and XML).

  • Full visual development environment.

  • WYSIWYG GUI layouts.

  • Step-through debugging.

  • Code completion.

  • Demo in Jon Udell's coverage at InfoWorld (http://weblog.infoworld.com/udell/2005/05/25.html).

  • The next version of the product and many sample applications at the developer community site (https://power.tibco.com/app/um/gi/newuser.jsp).

  • Commercial license by Tibco; more info at http://developer.tibco.com.

A.1.17. Interactive Website Framework (from May 2005)

Interactive Website Framework (http://sourceforge.net/projects/iwf/) is a project aiming to support the various aspects of Ajax infrastructure in the browser.

  • Describes itself as a "framework for creating highly interactive web sites using JavaScript, css, xml, and html. Includes a custom xml parser for highly readable JavaScript. Essentially, all the plumbing for making Ajax-based web sites, as well as other common scripts."

  • Has a thread-safe XMLHttpRequest implementation.

  • Contains a wrapper around the XML document, so you can make more readable code, instead of manual navigation:

         var node = doc.groceries.frozen[0].pizza[0].size;     var node = doc.documentElement.firstChild.firstChild.getAttribute("size"); 

  • Open source license by Brock Weaver (http://circaware.com).

A.1.18. Zimbra AjaxTK

Zimbra (http://www.zimbra.com/) 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 that showcases the extensive capabilities of its email client. A very large and comprehensive widget library that was available only 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, XmlHttpRequest, and IFrames.

  • Support for JSON serialized objects and JavaScript-based XForms.

  • Strong multibrowser capabilities: IE 5.5+, Firefox 1.0+, latest S.

  • High-quality widgets have commercial quality, since this is a commercial open source product.

  • Widget library is available as a separate build target set from the main product.

  • Debugging facility is built into the library and displays communications request and response.

Cons:

  • Does not currently support keyboard commands in menus and in-place datasheet editing.

  • Does not support graceful degradation to IFrames if other transports are unavailable.

  • Documentation is lacking, but a PDF whitepaper describing widget set and drag-and-drop is available.

  • Open source license (Zimbra Ajax Public License ZAPL, derived from Mozilla Public License MPL) by Zimbra.




Ajax Design Patterns
Ajax Design Patterns
ISBN: 0596101805
EAN: 2147483647
Year: 2007
Pages: 169

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net