Please note that at the present time this document is not complete.
Server-Side Java Features
Component Framework Backward Compatibility: The Echo3 and Echo3Extras Java libraries are MOSTLY backward compatible with Echo2. Some porting work is required: the most notable issue is that the base package name has been changed form "nextapp.echo2" to "nextapp.echo". The first step in porting is thus a global search-and-replace.
Client-Server Synchronization Features
Automatic Serialization: Data objects sent between client and server can be automatically serialized between Java, XML, and JavaScript. The serialization architecture is extensible--serialization code for new object types may be added by the developer.
Simplified Client/Server Synchronization Peers: Serializing components and commands between client and server is performed automatically using the built-in serialization architecture. The component developer only need specify which properties should be sent (for components, all local style properties are automatically sent).
Performance-related Features
Reduced Bandwidth: Echo3 uses approximately 30-40% of the bandwidth of a comparable Echo2 application. StyleSheet information is sent to the client only once (the entire stylesheet is serialized to the client at boot).
Reduced Server Load: Due to the fact that the server is no longer rendering HTML, it has quite a bit less work to do. The reduced bandwidth usage means less server CPU and memory utilization for rendering.
Client-Side Application Framework Features
Client-Side Application Framework: The entirity of the Echo framework has been ported to JavaScript, such that applications may be developed entirely in JavaScript and function entirely without any server round trips. The API of the client-side version is similar to the server-side framework. (Server-side Java application development is supported as well. The Server-side framework makes use of a derivative of the client-side framework to render the state of the server-side application remotely.)
Delayed Batch Rendering: The client application framework renders changes to its component hierarchy in batches, much in the same fashion as the client/server version of the Echo framework. This strategy increases rendering efficiency and eliminates potential screen flickering issues.
Application Rendered Components (ARCs): Client-side component synchronization peers may render components to HTML by creating a container HTML element (e. g., a <DIV>) and then loading a new client-side-only Echo application within the DIV. The Echo3Extras Rich Text Editor uses this feature to display a MenuBarPane, WindowPane-based dialogs, ColorSelects, toolbars and other UI elements. By writing the Rich Text Editor as a client-side Echo application, much time was saved and the editor is far more feature rich. Additionally an application rendered component can pull style data from the parent application's stylesheet, such that the appearance of its rendered Echo components will mimic that of the containing application.
Client-Side JavaScript / DOM / HTML Features
Method References: The Echo3 Core JS module defines a concept of "method references" for callbacks which are used throughout the client-side framework. Method references can be used when registering event listeners on components, DOM elements, and arbitrary script objects such that generated events will be fired to a method of a specific object instance.
DOM Event Processor: All DOM events are now handled by the Echo3 DOM event processor, enabling the use of capturing event listeners on all platforms (Internet Explorer does not natively support capturing listeners).
Scheduler: The Echo3 Core JS module provides a window.setTimeout/Interval()-based scheduling system to invoke tasks repeatedly, after a delay, or after the current JavaScript context has completed. The scheduler supports method references, such that methods may be invoked on specific objects.
Keyboard Navigation / Focus Management: Focus amongst components is now fully tracked. Echo does away with the practice of using sequential tab index numbers to control focus order, instead presenting next/previous element focus events to components for a more intuitive user interface. Components that have multiple "focus points" especially benefit from this feature.
Off-screen Rendering: Infratstructure is available to provide off-screen rendering to the DOM, such that sizing calculations may be performed on rendered HTML before placing it onscreen. This method is used by the WindowPane component, for example, to automatially size title bar height.
New Components
(Extras) RichTextArea: Provides a highly customizable rich text editing implementation.
(Extras) Tree: Provides a model-based Tree/TreeTable implementation.
(Extras) Group: Provides a bordered region with an optional title.