ICEfaces | |
---|---|
Basisdaten
| |
Entwickler | ICEsoft |
Aktuelle Version | 4.0[1] (4. November 2014) |
Betriebssystem | plattformübergreifend |
Programmiersprache | Java |
Kategorie | Webframework, Ajax, Java |
Lizenz | Apache-Lizenz |
www.icefaces.org |
ICEfaces ist ein auf JavaServer Faces (JSF) basierendes Ajax-Framework für Java, welches durch ICEsoft entwickelt wird. Seit November 2006 steht das Projekt bis und mit Version 2 neben einer kommerziellen Lizenz auch unter der Mozilla Public License (MPL) zur Verfügung. Die aktuelle Version von IceFaces (Version 3) enthält viele Komponenten, wovon einige jedoch erweiterte Kopien von PrimeFaces sind. Aus diesem Grund musste IceFaces auch ihre Lizenz von MPL auf die von PrimeFaces benutzte Apache-Lizenz ändern.
ICEfaces verfügt über eine umfangreiche Bibliothek an Komponenten für die Benutzerschnittstelle mit eingebauter Ajax-Funktionalität. Dazu gehören beispielsweise Bäume, Tabs und Menüs. Diese Komponenten können in einer standardkonformen JSF-Seite verwendet werden. Im Gegensatz zu den üblichen Komponenten einer Webseite können diese jedoch über Ajax mit dem Webcontainer kommunizieren und bei Bedarf Daten nachladen, ohne dass die gesamte Webseite neu geladen wird. Der Entwickler muss sich dabei nicht um die Details dieser Kommunikation kümmern, da diese im Hintergrund transparent abläuft. Mit ICEfaces lassen sich so Rich Internet Application (RIA) entwickeln, ohne JavaScript programmieren zu müssen. Der schlussendlich im Browser ausgeführte JavaScript-Code wird durch das Framework zur Laufzeit generiert.
ICEfaces baut auf einigen Web-Standards der Jakarta EE Architektur auf. Zu diesen Standards gehören wie bereits oben erwähnt JavaServer Faces, aber auch Facelets und Portlets. Für die Entwicklung können die herkömmlichen Java-Entwicklungsumgebungen eingesetzt werden und es sind keine Erweiterungen wie z. B. ein spezielles Plug-in notwendig. Zum Ausführen einer ICEfaces-Applikation im Browser sind ebenfalls keinerlei Plug-ins notwendig.
Wie das Google Web Toolkit (GWT) und andere vergleichbare Techniken unterstützt auch IceFaces die komponentengestützte Entwicklung von „Rich Internet Applications“. Das dynamische Verhalten basiert in beiden Fällen auf asynchroner Kommunikation zwischen Client (Webbrowser) und Server (Web- bzw. Applikationsserver) (Ajax). Ein wichtiger Unterschied zwischen beiden Ansätzen ist die client- bzw. serverseitige Generierung des UI-Markups. IceFaces erzeugt das „Markup“ serverseitig und integriert es dann dynamisch mittels einfacher JavaScript-Funktion in den aktuellen Dokumentenbaum. Das GWT überträgt nicht das „Markup“ selbst, sondern die Daten, die zu seiner Erzeugung nötig sind z. B. Datenbankinformationen. Das „Markup“ wird dann clientseitig erzeugt und aktualisiert. Daraus ergeben sich folgende Differenzen: