
The first beta release of the Echo3 web application framework is available for download. Echo3 enables the development of AJAX-based web applications in either server-side Java or (new in Echo3) client-side JavaScript. Applications are developed using a component-oriented and event-driven API, similar to that of a desktop application user interface toolkit.
The server-side Java API of Echo3 that is used by application developers is based on that of Echo2. Application code can thus be easily ported from Echo2 to Echo3, often with not much more than a package-name change.
The most notable new feature in this iteration of the Echo platform is the capability to develop applications entirely in client-side JavaScript. Client-side Echo applications do not require an application server, and can also be run entirely offline.
With Echo3, the formerly server-side-only component framework has been recreated in client-side JavaScript. This was not a direct “port”, but rather a re-imagining of the framework with the ideals of JavaScript development in mind. For example, the client-side version of the framework takes advantage of JavaScript's object and array literal syntaxes to create a capability called "hierarchal component construction", where an entire hierarchy of components can be created in a single call. Such code winds up being extremely readable, as, when naturally indented, it resembles the component tree.
A low-level framework, called “Core.js” was created to ease development of object-oriented and event-driven code in JavaScript. Core.js provides an inheritance model for building JavaScript objects using class-based (rather than prototype-based) inheritance. It additionally offers the capability to specify abstract classes and methods, and features “pseudo-private variables” where a class can reserve internal method/field names that cannot be overridden by subclasses. The framework includes utilities for managing events and listeners, and can register event handlers on object instances.
The “back-end,” which is responsible for rendering components within the web browser, has been re-engineered for Echo3. Instead of each component having its own client-server serialization code, Echo3's web application container simply serializes the state of updated components directly to the client, where JavaScript versions of the server-side components are then created and updated. This feature makes the component development process substantially easier and faster than it was in Echo2. The new approach also yields performance dividends when creating server-side Java applications--Echo3 consumes less CPU and a mere fraction of the bandwidth of Echo2.
Many new components have been added to the framework and existing components have been enhanced in Echo3. WindowPanes, for example, will always stay on screen, even if the browser window or containing component is resized. Menus can be configured with opacity and fade-in effects. New components have been added to the Extras library including a RichTextArea and Tree/TableTree. New APIs for keyboard accessibility and focus management allow for mouse-less operation (note: still under development in some components).
Like Echo2 before it, Echo3 supports all modern browser platforms. Mozilla/Firefox, Internet Explorer (6.0 and later), Opera, Safari, and Konqueror are all supported, as are any other browsers that support DOM2/CSS2.1 and JavaScript 1.5/ECMAScript v3.
Echo3 and Echo3 Extras are licensed under the Mozilla Public License version 1.1, allowing royalty free development of both proprietary and open source applications. All source code is available from the download site.
A demonstration application for Echo3 is available at http://demo.nextapp.com/echo3csjs/. This application was built with the client-side JavaScript version of Echo3 and Echo3 Extras. As it is entirely built in JavaScript, it can be run without an application server or even offline. The full source is available for download.
More information about Echo3, including documentation and downloads is available at http://echo.nextapp.com/site/echo3/. To learn more about Echo3 Extras, visit http://echo.nextapp.com/site/echo3/addons/extras/.
TheServerSide
There's now an identical article up on TheServerSide @ http://www.theserverside.com/news/thread.tss?thread_id=48708
Congratulations!
Tod,
Congrats on this important milestone!!! I added a post to DZone and Digg: http://www.dzone.com/links/better_than_gwt_opensource_ajax_framework_echo3_g.html
congratulation! echo3 is
congratulation!
echo3 is great!
Thanks, BTW, not much will
Thanks,
BTW, not much will be going into SVN in the next couple days...I'm currently working on a documentation parser for Core.js. So we'll have real API Docs for the JS-side of things soon enough.
Story is up on Ajaxian.com
Story is up on http://ajaxian.com as well:
http://ajaxian.com/archives/echo-3-releases-client-side-component-model