- ICEfaces
-
ICEfaces Entwickler ICEsoft Aktuelle Version 2.0.2
(13. Mai 2011)Betriebssystem plattformübergreifend Programmiersprache Java Kategorie Webframework, Ajax, Java Lizenz MPL 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 neben einer kommerziellen Lizenz auch unter der Mozilla Public License (MPL) zur Verfügung.
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.
Im Vergleich mit anderen Ajax-Frameworks für Java wie z. B. dem Google Web Toolkit (GWT) bietet ICEfaces den Vorteil, dass es nahtlos in die Java EE Architektur hineinpasst indem es auf bestehenden Standards aufbaut. Zu diesen Standards gehören wie bereits oben erwähnt JSF, 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.
Die mit ICEfaces erreichte Abstraktion mit der Möglichkeit eine Ajax-Applikation vollständig in Java und somit mit nur einer Programmiersprache erstellen zu können, erlaubt es die Ajax-Technologie in einem breiterem Umfeld einzusetzen.
ICEfaces im Überblick
- Rich Client Funktionalität
- Mit ICEfaces lassen sich Rich Client basierte Java-EE-Anwendungen erstellen, hierzu stehen mehr als 50 Komponenten zur Verfügung.
- Open Source
- Die Icefaces-Community hat mittlerweile über 45.000 registrierte Nutzer, das Forum wird aktiv von Icesoft-Mitarbeitern betreut. Das Geschäftsmodell von Icesoft basiert allerdings auf kostenpflichtiger technischer Unterstützung und Schulungen.
- Standardorientiert
- ICEfaces ist eine reine auf JSF basierte Java-Enterprise-Lösung, Entwicklern ist es somit möglich, in ihrer gewohnten Entwicklungsumgebung zu arbeiten. Darüber hinaus gibt es bereits zahlreiche Plugins für bekannte Entwicklungsumgebungen wie Eclipse oder NetBeans.
- Transparentes Ajax
- ICEfaces bietet mit umfangreichen Komponentenbibliothek die Möglichkeit für Java/JSF Entwickler, Ajax-Anwendungen mit minimalem Aufwand zu erstellen. Hierbei ist keinerlei JavaScript-Wissen notwendig, lediglich JSF-Know-How.
- Integrationsfähigkeit
- ICEfaces ermöglicht die gemeinsame Nutzung gängiger Java Frameworks, IDEs und Application Server sowie Komponenten von Drittanbietern und JavaScript-Effect-Bibliotheken.
- Ajax Push
- Die als Ajax Push bezeichnete Technologie ermöglicht ein serverbasiertes Rendering von Inhalten auf dem Browser. Ajax Push ermöglicht die asynchrone Kommunikation zwischen Client Browser und Server, sodass ein Nachladen von geändertem Inhalt ohne das Absenden eines neuen Requests ermöglicht wird.
Vergleich mit GWT
Wie auch das GWT und andere vergleichbare Techniken unterstützt 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. Applikationserver) (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:
- höhere Anforderungen und Rechenlast für den Client durch das GWT, die bei Mobilbrowsern (z.B. iPhone, iPad oder Windows Mobile-Systemen) Probleme bereiten können
- höhere Netzwerklast bei der Verwendung von IceFaces, da das Markup umfangreicher ist als die Anwendungsdaten
- längere Erstladezeiten beim GWT und schnellere Reaktion auf Nutzeraktionen innerhalb der Session (Reaktionsverhalten ähnlich zu Desktopanwendungen)
- GWT-Anwendungen sind unabhängiger vom Server und damit auch bei Unterbrechung der Client-Server-Verbindung länger funktionsfähig
Weblinks
Kategorien:- Freies Webframework
- Java-Bibliothek
Wikimedia Foundation.