Rich Internet Application Platform
ist eine Anwendungsplattform open source zero install Software
Amazon Shopping in einem RIA Beispiel
Ubiquitous Internet Wie kommts? 60 Prozent der Deutschen online
Anwendungen ändern sich Höhere Erwartungshaltung der Nutzer Google Maps Flickr RIAs Web 2.0
ist es neu? 2000: Gründung von Laszlo Systems 2002: Erstes Release des Laszlo Presentation Server (LPS), einer Rich Internet Entwicklungsplattform mit Server
seit wann open? 2004: Start von OpenLaszlo - LPS wurde zur OpenSource Software
Wichtige Ereignisse 2005: Produktlaunch von Laszlo Mail, der ersten Komponente der Digital Life Suite 2006: Start der Entwicklung einer zweiten Runtime: DHTML/Ajax
AJAX! 2007: Release OpenLaszlo 4.0 mit DHTML/Ajax und Flash Unterstützung
Die Platform
Überblick Cinematic user experience Rapid XML development approach Scalable deployment architecture
Cinematic User Experience Eine Multistate Webseite Coole UI Effekte Möglichkeiten die bisher nur rich clients zur Verfügung standen
Nur eine Seite???
Beispiel Beispiel für Cinematic user Experience Sowohl als Flash und als DHTML Beispiel verfügbar http://www.openlaszlo.org/demos
Rapid XML development approach XML basierte deklarative Programmierung OOP Eigenschaften Standards, Standards, Standards
Entwicklungszyklus
Scalable deployment architecture Nutzung der Client-Ressourcen Reduzierung der Serverlast auf Datenaustausch
Architektur
Solo deployment Kompilierte Anwendung lediglich zum Download bereitgestellt
Java EE deployment Bereitstellung von Diensten Ad-hoc Kompilieren der Anwendung
Die schwarze Katze im dunklen Raum suchen? Wie gut ist die Dokumentation?
Dokumentation Installationsanleitung Entwickeranleitung Referenzmanual Administrationsanleitung Komponentenanleitung
Community Foren Mailing Lists Blogs Verschiedene User-Groups
Wiki Umfangreiche Extra -Dokumentation Best Practices Gotchas Resources
Kurzeinführung Entwicklung in 1 Session
Download Verschiedene Binaries (mit Tomcat) Windows MacOS Linux Developer Kit (Any OS, kein Tomcat) Servlet Minimum für Deployment in Java EE Appserver Source
IDE 4 Laszlo Eclipse Projekt wurde eingestellt
Entwicklungsumgebung 1x Eclipse (+ XML Editor) 1x Tomcat (mit Webanwendung) 1x Browser (hier: Firefox)
Hello World <canvas width="200" > <text>hello World!</text> </canvas> In Datei *.lzx in der Webanwendung speichern
Debugging, Logging Graue Katze im Dämmerlicht Log4J logging im LZX Compiler Firefox Javascript debugger (nur für DHTML)
Compiler erzeugt Fehlermeldung
LZX XML Markup Language Embeded Javascript
LZX Bestandteile XML Markup DTD / Schema Validierung Markup ist durch eigene Klassen Erweiterbar Javascript Teile der ECMAScript Language Specification
OOP in XML & Javascript? XML ist nur Markup Javascript ist von Natur aus OOP <class name="myview" extends="view"/>
Attribute XML Attribute werden zu Objektattribute <view height="20" width="30"/> Spezielles Element ermöglicht nachträgliches Einfügen (!!!) von Attributen <class name="froboz" extends="view"> <attribute name="whatnot" value="17"> </class>
Ereignisse Teilweise bekannt aus der Javascript Programmierung Zusätzlich Events für Objektlifecycle
Methoden Javascript Functionen die Objekten zugeordnet werden <view name="dog"> <method name="bark"> <!-- some JavaScript code ---> </method> </view> dog.bark();
Handlungsbedarf? Anbindung an Eregnissquellen Viele Wege führen nach Rom
Handler direkt implementieren <view> <handler name="onclick"> <!-- some JavaScript code ---> </handler> </view>
In Handler delegieren <view> <method name="bark"> <!-- some JavaScript code ---> </method> <handler name="onclick"> this.bark() </handler > <view>
Handler Kurzform <view onclick="clickhandler()"> <method name="clickhandler"> <!-- some JavaScript code --> </method> </view>
Constrains Ein Attribut wird über einen Ausdruck als Funktion anderer Attribute definiert. Syntax: $bindungsart{ausdruck} bindungsart entspricht immediately once Always (default wenn nicht angegeben)
Constrains - Beispiel <view name="someview" width="${someattribute + someotherattribute}" />
Mehr Databinding Remote procedure call
Grafisches Komponentenmodell Node View Submit basedatepickerweek basedatepickerday basecomponent baseform datepickerweek datepickerday checkbox form edittext radiobutton combobox menu tabelement button menubar tabelement textlistitem datepickercombox scrollbar menuseparator datepicker tabs tabpane
Auf Reise gehen Laszlo Explorer http://localhost:8080/openlaszlo/laszlo-explorer/ Styles and Samples http://localhost:8080/openlaszlo/examples/components/style_example.lzx Class Hierarchy http://localhost:8080/openlaszlo/docs/components/components.lzx
OpenLaszlo Heute Versionen, Probleme, Success Stories, Ausblick
Versionen OpenLaszlo 3.3.x Runtime unterstützt Flash 6,7 und 8 OpenLaszlo 4.0 mit multi-runtime Support Flash 7 und 8 DHTML/Ajax Ab Ende 2007 Flash 9
OpenLaszlo Zielgruppen Optimalerweise erfahrene Java-Entwickler Fehlendes Know-How über Flash-Plugin (Performance, XML-Parsing, Medienintegration) Wenig Erfahrungen im den Umgang mit Layouttransformationen und Animationen Interfacespezialisten / User Experience Designer mit Programmiererfahrung
Probleme Etablierte Best Practices zur RIA Entwicklung fehlen Es existiert noch kein Client-seitiges LZX Framework IDE/Tools kaum vorhanden Globaler Support durch Laszlo Systems derzeit nur begrenzt möglich Massiver Mangel an qualifizierten LZX Programmierern Performance des Flash 6, 7 und 8 Plugins relativ schlecht
OpenLaszlo Success Stories Laszlo Mail IBM - Was macht Sie so besonders? Surewest RIA Portal Pandora Radio 104.6 RTL Radio ClickShirt
Visionen für die Zukunft Projekt Orbit - Java Micro Edition Kooperation mit Sun Weitere denkbare Runtimes Mobile Ajax? (iphone, S60 Webkit) Flash Lite WPF / Silversheet SVG