Original author(s) | ICEsoft Technologies Inc. |
---|---|
Stable release | 2.0.2 / 2011-05-13 |
Type | Ajax, Java, JSF2, Framework |
License | Open Source MPL |
Website | http://www.icefaces.org |
ICEfaces is an open source Ajax framework that enables Java EE application developers to create and deploy server-based rich Internet application (RIA) using the Java language.
ICEfaces leverages the entire standards-based Java EE ecosystem of tools and execution environments. Rich enterprise application features are developed in pure Java, and in a pure thin-client model. There are no Applets or proprietary browser plug-ins required. ICEfaces applications are JavaServer Faces (JSF) applications, so Java EE application development skills apply directly and Java developers are isolated from doing any JavaScript related development.
Contents |
The ICEfaces community counts over 100,000 developers worldwide as of April 2010. It uses the ICEfaces.org website for information and coordination, administered by ICEsoft Technologies Inc. The site provides a range of development and support resources available to all ICEfaces developers, among them source code and pre-bundled IDE tool integrations for download, as well as tutorials, on-line support and user forums.
The primary goal behind the ICEfaces architecture is to provide the application developers with a familiar Java enterprise development model, and completely shelter them from the complexities of low-level Ajax development in JavaScript. The key to the ICEfaces architecture is a server-centric application model, where all application logic is developed in pure Java, and executes in a standard Java application server runtime environment. This means that existing Java EE infrastructure, development environments, and best practices remain relevant and useful. The way Java EE applications are developed today will not change in any significant way, and developers will not need to completely rearchitect their existing applications to incorporate rich Ajax-based features.
The rich presentation features of ICEfaces are based on the JavaServer Faces standard. ICEfaces applications development is essentially JSF development, which promotes a component-based architecture using familiar tag-based declarative UI definition and dynamic data binding into the server-resident application data model. Utilizing the ICEfaces Ajax-enabled component suite, which provides all the standard JSF components as well as a complete set of extended components, developers can build a standard JSF application that adheres to the standard server-centric JSF application lifecycle, but benefits automatically from rich Ajax-based features of ICEfaces. Because ICEfaces supports Ajax Push style applications, it extends the JSF framework to provide a trigger-based, server-initiated rendering API that make it simple to enhance applications with instantaneous presentation updates based on server-resident application state changes. Using ICEfaces and pure Java/JSF programming techniques application developers will be able to develop next-generation rich web applications without ever having to write a single line of JavaScript.
While the underlying Ajax-based rich presentation mechanism in the ICEfaces implementation is completely transparent to the application developer, it is useful to understand what is happening behind the scenes in an ICEfaces applications. There are three core elements to the ICEfaces architecture:
The following template:
<html> <body> <ice:inputText value="Hello World!" /> </body> </html>
processed by ICEfaces will produce the following (invalid) XHTML:
<html> <body> <input type="text" value="Hello World!"/> </body> </html>