Zum Inhalt springen

ICEfaces

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 7. Dezember 2012 um 17:47 Uhr durch Jelizawjeta P. (Diskussion | Beiträge) (Änderung 111397032 von 87.234.201.250 wurde rückgängig gemacht. Löschgrund nicht genannt.). Sie kann sich erheblich von der aktuellen Version unterscheiden.
ICEfaces
Basisdaten

Entwickler ICEsoft
Aktuelle Version 3.0
(3. Februar 2012)
Betriebssystem plattformübergreifend
Programmier­sprache 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, welche jedoch größtenteils 1 zu 1 Kopien von PrimeFaces sind. Aus diesem Grund musste IceFaces auch ihre Lizenz von MPL auf die von PrimeFaces benutzte Apache-Lizenz ändern. IceFaces folgt nun dem Trend der JSF 2.0 Entwickler. Sie verwenden PrimeFaces.

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 breiteren 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