Adobe Flex 3 Roadshow +
Die Adobe Flex 3 Roadshow machte heute Halt in Köln, was ich mir nicht entgehen lassen wollte. Immerhin liegt es fast um die Ecke und Informationen und Fragen aus erster Hand können Stunden in Google ersetzen. Veranstaltet wurde das Event von Adobe und Herrlich & Ramuschkat. Der Tagesplan sah wie folgt aus:
- Kunden-Engagement durch Flex
- Vorstellung von Kundenlösungen basierend auf Flex
- Adobe Flexbuilder 3
- Adobe AIR
- Serverseite mit BlazeDS und Lifecycle Data Services
Kunden-Engagement durch Flex
Andreas Helios stellte aus Sicht von Adobe dar, warum es sinnvoll ist auf Adobe (Flex) Produkte zu setzen. Eigentlich eine gelungene Einleitung, wäre das Wort PDF nicht so oft gefallen. Warum sollte man Flex einsetzen? Weil es ein deutlich besseres Benutzerinterface bei kürzerer Entwicklungszeit bietet. Das kann man je nach Einsatzzweck voll unterschreiben und es war sehr positiv anzumerken, dass Adobe sich selber auch auf Einsatzzwecke beschränkt. Es ist eben nicht immer sinnvoll auf Flash zu setzen. Aber Anwendungsfälle wie Produktfinder, wo es um den Eindruck beim Kunden geht oder komplexe Webanwendungen sind damit sehr gut zu realisieren. Webseiten mit Flash sind möglich, aber unterbrechen die Surfgewohnheiten des Nutzers und sind mittlerweile als Spielerei von Grafikern geächtet.
Vorstellung von Kundenlösungen basierend auf Flex
Vorgestellt wurden verschiedene Projekte die den Einsatzzweck von Flex sehr gut umrissen. Eine Anwendung für Köche, die komplex war, aber wohl ohne Schulung und Fachkenntnisse keine Glücksgefühle bei mir hervor rief. Ein weiteres Projekt war ein internes Addressbuch einer niederländischen Firma, die sehr viel Wert auf das Benutzerinterface legte, was der Anwendung wirklich zugute kam. Hinzu kam Adobe Photoshop Express, welches auch auf Flex beruht und zeigt, dass Adobe seine eigenen Produkte nutzt.
Adobe Flexbuilder 3
Mit dem Flexbuilder 3 ging es einmal durch die Basics von Flex, wobei man nicht sehr viel Neues sah, wenn man sich schon einmal mit Flex beschäftigt hatte. Hello World, Komponenten und Container hat wohl jeder schon mal gesehen, der sein erstes Tutorial durchgearbeitet hat. Mit dem Styling per CSS hatte ich mich bisher selber nicht beschäftigt und somit konnte ich in diesem Punkt auch dem ersten Abschnitt des Vortrags etwas entnehmen. Flexbuilder 3 soll gegenüber der 2er Version einige Verbesserungen mit sich bringen. Bitter nötig meiner Meinung nach, denn die vorherige Version war definitiv nicht so rund, wie man es sich wünschen würde. Ich selber habe zwar Flexbuilder 3 schon heruntergeladen, ihn aber noch nicht ausprobiert. Meine letzten Arbeiten an Flex habe ich mit IntelliJ 7.0.3 vollzogen, welches eine heute ungenannte Alternative zum Flexbuilder bietet. Mit der Version 8 wird dann auch Debugging integriert, was im Moment neben dem visuellen Editor am meisten fehlt. Für Syntaxhighlighting und Vervollständigung in MXML und Actionscript aber vollkommen ausreichend.
Im zweiten Teil des Vortrags ging es dann um den Zugriff über Services, wobei gezeigt wurde, wie schön einfach es ist, strukturierte Daten die als XML reinkommen in Anzeigeelemente zu verwandeln. Über Databindings kann man wirklich sehr einfach und zielgerichtet programmieren. Auch ein Punkt, den ich bisher an Flex schätze, es funktioniert so, wie man denkt, dass es funktionieren sollte. Schwer konkret zu beschreiben, aber man kommt schnell vorwärts.
Dann wurde noch eine eigene Komponente erstellt, wobei der Datenaustausch zwischen Komponenten wohlwissend ausgelassen wurde. Da wird es nämlich erst interessant: Wie erstellt man entkoppelte und wiederverwendbare Komponenten mit Flex. Der Hinweis auf das Caingorm-Framework hat nicht gefehlt und ist meiner Meinung nach auch sehr nötig. Denn der einfache Einstieg wird schnell zu Spaghetti-Code, wenn man nicht aufpasst. Eigene Pattern zu entwickeln, während man Flex noch lernt ist schwer und somit ist Cairngorm bei größeren Anwendungen eine gute Wahl (bei kleineren nicht wirklich).
Adobe AIR
Nach der Mittagspause gab es dann eine Einführung in Adobe AIR, der Adobe Integrated Runtime. Adobe Air wird auf dem Rechner installiert und bietet ein Framework für Webanwendungen auf dem Desktop. Es ermöglicht leichtgewichtige Desktop Applikationen, die im Gegensatz zu reinen Web-Anwendungen auf Resourcen des Client-Rechners zugreifen dürfen. Dazu zählt das Dateisystem, das Clipboard und eine mitgelieferte SQLite Datenbank wodurch auch Offline-Anwendungen möglich sind. Vorgestellt wurde hier eine Flexanwendung innerhalb der AIR-Umgebung. In AIR ist aber auch ein Webkit-Browser integriert, weswegen auch eine Programmierung in HTML und Javascript/AJAX möglich ist. Eine AIR-Applikation verhält sich dabei wie ein gewöhnliches Programm auf dem Rechner. Man lädt eine .air-Datei herunter, wonach sich AIR meldet und fragt, ob wir diese wirklich installieren wollen. Danach wird diese z.B. unter C:/Programme abgelegt und ist über das Startmenü zu erreichen, sowie laufend in der Start-Leiste zu finden. Ein sicherlich interessanter Ansatz, wobei zu oft die Offline-Fähigkeit erwähnt wird. Sicherlich ist diese Interessant, wenn man eine Adreßapplikation auf einem Notebook hat, aber der normale Desktop-Nutzer ist dauerhaft online. Ich selber nutze Mozilla Prism, wodurch meine Google Apps auch sehr nativ ins System integriert sind. Prism basiert auf dem Firefox und hinterlegt Desktopicons, Startmenüeinträge und lässt die Webanwendung dann in einem eigenen Container laufen. Somit wird der Firefox nach 8h Google Mail nicht noch zusätzlich ausgebremst.
Was aber ist dann der Kick? Ich denke es ist die schnelle Erstellung von Desktop-Applikationen und die Realisierung mit bekannten Technologien wie Flex, HTML und AJAX. Hinzu kommt die Nähe zum Internet, wodurch Videos, und Informationen eher den Weg in Desktop-Anwendungen finden. Die These, dass Adobe AIR in einem Jahr genauso verbreitet ist, wie der Flashplayer halte ich dagegen genauso falsch, wie die enorme Verbreitung von Silverlight in kurzer Zeit. Es sind sicherlich interessante Technologien, werden aber ihre Zeit benötigen, um ihre Position zu finden.
Serverseite mit BlazeDS und Lifecycle Data Services
Auch wenn man Flex mit simplen Webservices sehr einfach füttern kann, so bietet Adobe mit BlazeDS und Lifecycle Data Services noch eigene Lösungen an. Interessant sind hierbei die Konnektoren zu Java-Objekten, JMS, Hibernate und Co.
BlazeDS ist das neueste Open-Source Produkt von Adobe und deckt einen weiten Bereich der gewünschten Serverfunktionalität hin zu Java ab. Wir werden wohl in den nächsten Googledays das Messaging über JMS weiter unter die Lupe nehmen, da dies eine andere Art der Anwendungssteuerung ermöglicht (Push anstatt Polling).
Lifecycle Data Services sind die kostenpflichtigen Produkte von Adobe, die mehr Performance versprechen und eine ganze Menge zusätzlicher Features mit sich bringen (ein Vergleich). Der Vortrag zielte dabei etwas an BlazeDS vorbei und hob den Mehrwert der Lösung hervor. Über ein eigenes Messaging-System werden die Daten bis hin zum Client synchronisiert. Eine Änderung der Daten in einem Browser, kann sofort auch bei anderen Anwendern erscheinen. Konflikte beim gleichzeitigen Bearbeiten von Daten können aufgelöst werden und das alles transparent bis hin zur Datenbank. Klingt gut und viele Probleme haben wir in unserer AJAX-Entwicklung auch schon gehabt. Es wirkt aber so, als würde man sich mit einem Schwenk in diese Richtung sehr in die weichen Betten von Adobe fallen lassen. Probleme gibt es keine und die Realisierung ist in 5min fertig. Nur die Geldbörse muss für die Lösung entsprechend dimensioniert sein. Klingt zu schön um wahr zu sein und hält wohl noch viele Probleme in den Details und fehlenden Schichten versteckt.
Fazit:
Für Einsteiger, die bisher nur den Namen Flex gelesen haben, wäre die Veranstaltung Gold wert gewesen. Für jeden der sich schon etwas mit Flex beschäftigt hatte, blieb zumindest etwas hängen und die Veranstaltung war insgesamt professionell gemacht und organisiert. Aufgrund der mangelnden Informationsflut für Semi-Anfänger hat mich Fabian dann ab der Mittagspause alleine zurück gelassen, mit der Aufgabe über die ausstehenden Dinge zu berichten. Das werde ich dann zusätzlich zum Blogeintrag morgen noch einmal in der Stand-Up-Runde tun.
Irgendwie ist der Eintrag länger geworden als gedacht, aber so war der Termin heute trotz der eigentlich wenigen Stunden auch. Das lag aber primär an der Luft im Raum.
