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:
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.
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.
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.
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.