eFace is the Worldwide First XAML solution for Java. It provides an unified programming model for building both rich client application and RIA. It keeps insulation for applications from the technology/environment change such as Swing, SWT or Web/Ajax.

eFace - XAML/WPF for Java

eFace is a platform-independent and technology-neutral presentation framework. Its XML grammar and behind logic keep compatible with Microsoft's XAML, which is extensively used in the last Windows Vista. The complete specification is published under the license OSP (Open Specification Promise) and can be downloaded here.

eFace captures relative information of user interface components and delegates their display to a platform-specific renderer. Depending on the platform or device being used, the renderer decides the best way to present the user interface to the user and receive user input.

The core of eFace, code-named as UPF (Universal Presentation Framework), remains compatible with Microsoft's WPF (Windows Presentation Foundation). It is a 100% Java solution.

eFace provides the following key benefits than the traditional solution:

1. Rapid and domain-oriented (User Experience) development

eFace setup an extensible and component-based infrastructure, which minimizes the amount of code developers have to rewrite and maximizes potential for code reuse. This approach makes possible the separation of the developers in terms of the role in project: domain and technology developers.

Technology developer aware of the specific platform-device, takes over the development of reusable components for domain developpers. Domain developer has the special domain knowledges and semantic of each component. He/she doesn't care of their implementations and the platform-device display. The final goal of this organization is to minimize the percentage of technology developper and increase the domain development activities.

2. Cross-environment applications

Using the eFace, applications that are created will run single-sourced in multiple rendering environments. It provides renderers for SWT, Swing and for running in the Web as a servlet or portlet. The same binaries can be used to drive applications in all supported environments; the binaries just need to be deployed differently.

Furthermore, the XAML files can be shared by .NET and Java application.

3. Insulation from technology change

Because application code is not written directly to the APIs for the environment it is running in, the eFace renderers absorb the burden of updates and fixes when core technology updates occur such as Swing, SWT, Web or others.

4. Ideal GUI component for MDD/MDA approach

XAML is a rich descriptive language. It is in fact a platform-independent and a technology-neutral executable language. It simplifies the GUI generation task from domain logic models on UML, BPM, or directly Java.