Montag, 31. August 2009

RIA, Flash, Flex - Was ist das alles überhaupt?

Begriffe, mit denen im Bereich Flex sehr viel hantiert wird. Bevor ich also mit der Programmierung anfangen möchte, erstmal ein kleiner Einstig (in Marke "Simple und einfach" in den Bereich RIA, Flash und Flex und was eigentlich was ist.

RIA steht für Rich Internet Applications. Hierbei handelt es sich um ein "neues" Applikationsmodell mit der Trennung des Backends (d.h. der Logik, die hinter dem ganzen steht. Stellen wir uns z.B. vor, wir wollten unsere Flex-Applikation in eine bestehende Software oder eine bestehende Webseite integrieren. Auf der Website oder in der Software sind diverse Informationen gespeichert und wir möchten diese Informationen gerne mit Flex anzeigen lassen. Dann wird die Verarbeitung der Informationen nicht in der Flexapplikation stattfinden, sondern die Verarbeitung findet erst statt und dann werden die Informationen an die Applikation weitergereicht und müssen nur noch angezeigt werden. Alternativ ist es auch in Flex möglich mit Klassen zu arbeiten und eine Hauptseite zum Anzeigen zu verwenden und alle anderen Aspekte in Klassen auszulagern. Aber ich komme vom Thema ab, also weiter im Text...) und des Frontends (in dem nur die Darstellung unserer vorher verarbeiteten Inhalte erfolgt. Außerdem ermöglichen RIA asynchrones Datenladen, d.h. nur die Daten, die aktuell benötigt werden, werden auch angezeigt und sie werden immer nachgeladen, wenn neue Daten benötigt werden. In vielen Softwarebereichen (man denke z.B. auch an Spiele wie WoW, GuildWars, Gothic etc, bei denen ab und an so nette Ladebalken erscheinen) ist dieses bereits normal, in Internetapplikationen kam dies jedoch erst mit den RIA. Außerdem sind RIA plattformunabhängig und lassen sich überall darstellen, wenn überhaupt sind nur kleinere Erweiterungen zum Anzeigen der RIA nötig, wie z.B. im Falle von Flex ein Flash Player 9 bzw. Adobe Air für Desktop Anwendungen). Und warum heißen die nun "Rich" Internet Applications? Stellt euch mal eine einfache Webseite vor oder betrachtet dieses Blog und nun nehmt im Vergleich irgendeine Flash- oder Flexanwendung oder eine Javaanwendung. Dort habt ihr z.B. Vorteile wie "Drag&Drop" Funktionalitäten oder faszinierende Bewegungen etc. Rich steht also für reichhaltig und bedeutet, dass ein Mehrwert geboten wird.
Sooo und warum erzähle ich euch grob, was RIA sind? Ganz einfach: Flash und Flex sind solche RIA und weisen die o.g. Vorteile auf.
Weitere Informationen zu RIA erhaltet ihr z.B. bei Wikipedia oder bei Adobe selbst oder fragt Google.

Wo ist nun der Unterschied zwischen Flex und Flash?
Defakto wird beides nachher im Flash-Player angezeigt, also kann der Unterschied ja nicht ganz so groß sein, richtig?
Adobe Flash gilt als ideal für Animationen und Filme, da z.B. mithilfe einer Timeline gearbeitet werden kann. Für Interaktionen kann hierbei mit ActionScript programmiert werden. Also z.B. Interaktionen, die über die Timeline hinausgehen wie z.B. das Erscheinen oder Verschwinden von Objekten.
Adobe Flex ist eher für weitergehende Entwicklungsprojekte geeignet, da es auch objektorientierte Programmierung anbietet. Außerdem ist eine Datenübertragung von extern (z.B. von PHP oder für SAP-Entwickler interessant auch von ABAP/WebDynpro ABAP) möglich. Zur Übertragung via PHP werde ich in späteren Blogeinträgen kommen, nachdem die Grundlagen von Flex und Flex Builder klar sind :). Apropos Flex-Builder - auch dies ist ein Argument für die erweiterte Entwicklung mit Flex anstatt mit Flash. Der Flex Builder bietet nämlich bereits vorgefertigte Komponenten zur Oberflächengestaltung wie z.B. Textfelder, Buttons, Tabellen oder Diagrammtypen an.

Wo ich gerade bei Flex bin, könnte ich euch eigentlich auch noch einen kurzen historischen Überblick über die Entwicklung von Adobe Flex mitgeben (genauer nachzulesen bei Adobe oder Wikipedia):
Die erste Version von Flex hat Macromedia 2004 auf den Markt gebracht. Diese baute auf dem Dramweaver 2004 auf und es handelte sich damals noch um eine Serverapplikation mit sehr hohen Lizenzgebüren. Verständlicherweise hatte dies zur Folge, dass Flex noch nicht so erfolgreich war und auch nur im Unternehmensumfeld eingesetzt wurde. Zwei Jahre später ist dann das heute bekannte Flex entstanden. 2006 war Macromedia bereits von Adobe aufgekauft und Flex wurde komplett umgearbeitet. So kam 2006 dann Flex 2.0 auf den Markt in Zusammenhang mit dem Adobe Flex Builder 2.0, der auf Eclipse aufbaut. Flex wurde zu einer Clientapplikation, bei der kein Server mehr benötigt wurde, weswegen es nun auch privat verwendbar wurde und die Gebüren sanken. 2008 ist dann Flex 3.0 erschienen, das Flex, mit dem wir heute arbeiten. Parallel wurde ein Flex SDK 3 als OpenSource-Version unter der Mozilla Public Licence herausgegeben (ich habe im letzten Blogeintrag erwähnt, wo man diese Version herbekommt!) sowie der (kostenpflichtige) Adobe Flex Builder 3.0 mit einigen Erweiterungen zur Version 2.0, wie z.B. nach mehreren Aspekten sortierbare Tabellen. Für irgendwann Ende 2009 bzw. Anfang 2010 ist dann die nächste Version (Flex 4.0) geplant. Scheint also ganz gut zu laufen, wie man auch an den vermehrt auftretenden Flex-Applikationen im Internet und für den Desktop (mit Adobe Air, wie z.B. diverse Twitterclients wie Twhirl oder TweetDeck) sehen kann, würd ich mal sagen…

So, ich denke, das war vorerst genug Theorie. Im nächsten Blogeintrag geht es dann weiter mit der Bedienung vom Flex-Builder und dann auch mit dem ersten kleinen Projekt mit Flex. Ihr dürft euch schonmal freuen…

Sonntag, 2. August 2009

Idee des Blogs und Basis-Informationen

Hallo,

die Idee dieses Blogs stammt aus der letzten Praxisphase meines Dualen Studiums bei der SAP AG. In diesem Zusammenhang bin ich das erste Mal in Kontakt mit Adobe Flex gestoßen, weil ich ein Dashboard mithilfe von Flex entwickeln musste. Hierbei ist mir aufgefallen, dass es außer der Adobe-Seite selbst sehr wenige (v.a. deutsche) Seiten zum Thema "Einstieg in Flex" gibt. Dort ist mir auch aufgefallen, wie viel Interesse an diesem Thema besteht, da ich während und nach meinem Flex-Projekt diverse Anfragen zum Thema Flex bekam.
Ich denke, dass viele sowohl im privaten als auch geschäftlichen Bereich demnächst immer mehr mit Flex zu tun haben werden, denn Flex eröffnet sehr viele verschiedene Möglichkeiten.
Schon jetzt kann man viele Seiten bewundern, in denen Flex verwendet wird. Man denke nur an Onlineshops, in denen sich Bilder im Kreis bewegen lassen um auf verschiedene andere Seiten zu verweisen oder an neueste Dashboards im Business-Umfeld, auf denen sich Daten verarbeiten und besser darstellen lassen. Ich selbst habe mich bisher hauptsächlich im Unternehmen mit Flex beschäftigt, habe in dem Zusammenhang aber ein sehr großes Interesse an dessen Entwicklungsmöglichkeiten entwickelt und plane in nächster Zeit mehr im privaten Umfeld damit zu arbeiten. Auch für die Website-Entwicklung ermöglicht Flex diverse, sehr interessante Möglichkeiten, z.B. durch Schnittstellen für PHP oder Anbindungen an Webservices (so ist z.B. auch eine Anbindung an die Google-Maps-API oder ICQ möglich).

Wer die Dinge, die in nächster Zeit hier präsentiert werden, selbst ausprobieren möchte, hat die Möglichkeit, sich bei Adobe den Adobe Flex-Builder z.B. zuerst einmal als 60-Tage-Trial-Version herunterzuladen und auszuprobieren und, wem Flex gefällt, später eine Lizenz zu kaufen. Studenten empfehle ich die kostenlose Education-Version des Flex Builder 3.
Meine Beispiele werden so erklärt sein wie man sie mit dem Flex-Builder erstellt, alternativ stellt Adobe auch ein kostenloses Flex-Software Development Kit zur Verfügung, womit die Entwicklung allerdings nicht so einfach ist, wie mit dem Flex Builder 3.
So, jetzt aber genug Werbung für Adobe für heute!

Ich freue mich auf neugierige und interessierte Leser, eure Kommentare zu meinen Erklärungen und Beispielen und natürlich über Anregungen, worüber ich sonst noch schreiben könnte. Auch Fragen zu Adobe Flex nehme ich natürlich gerne entgegen und versuche sie, soweit es mir möglich ist, zu beantworten.