Adobe Flex Skins, Themes und Components

Adobe Flex Skins, Themes und Components
Skins, Themes und einige Components für Flex sind auf fleksray.org zu finden.

Samstag, 25. August 2007

Flex DataManagement Service und Hibernate

Um Hibernate und Adobe Flex in einfacher Weise miteinander zu verbinden, empfiehlt es sich, auf den DataManagement Service des LiveCycle Data Service zurückzugreifen. Damit lassen sich in Java entwickelte Klassen eins zu eins in eine Flex Anwendung übernehmen. Alle Änderungen an Objekten im Flex Client werden direkt auf die Java Objekte übertragen.

Wird der DataManagement Service in Verbindung mit Hibernate verwendet, ist es nicht einmal nötig DataAccess Klassen zu entwickeln. Alle Create-, Update- und Delete-Operationen werden direkt auf die Java Objekte angewendet (hinter den Kulissen führt die Klasse flex.data.adapters.JavaAdapter des DataManagement Service die CRUD Operationen aus).
Diese Vorgehensweise vereinfacht den Entwicklungsaufwand enorm. Die Programmierung von DAO's entfällt.

Die Verwendung des DataManagement Service bringt aber auch Nachteile mit sich. Der Service verwendet das Real Time Messaging Protokol, das im Normalfall Port: 2038 verwendet. Aufrufe über diesen Port werden an den meisten Firewalls scheitern.
Der Einsatz beschränkt sich deshalb mehr oder weniger auf Intranet Anwendungen. Soll Hibernate in klassischen Internet Applikationen eingesetzt werden, kommt man nicht umhin, Data Access Klassen zu implementieren und deren Interface per WebService im Netz zur Verfügung zu stellen.

Weitere Informationen zur Entwicklung einer Flex Anwendung unter Verwendung von Hibernate und dem DataManagement Service finden sich auf http://fleksray.org/flex_datamanagement_service_hibernate.html

Montag, 20. August 2007

Neues Theme für Adobe Flex

Auf fleksray.org steht wieder mal ein neues Theme zum Download zur Verfügung. Das Theme Black Edding fällt in die Scribble Kategorie, jedoch sind die Formen klarer als beim Flekscribble. Für nahezu alle Komponenten existiert eine entsprechende Skin, deshalb ist das Edding Theme sicher eher für den praktischen Einsatz geeignet als die Flekscribble Skin.

Freitag, 17. August 2007

Gründung der Adobe Flex User Group Hamburg

Nun gibt es auch ein Adobe Flex User Group für Hamburg.
Gemeinsam (Christoph Schrörs, Joshua Buttkus und Ralf Sczepan) haben wir die Gruppe gestern aus der Taufe gehoben und sind offiziell als Adobe Flex User Group Hamburg bei den Adobe User Groups registriert.
Ich hoffe auf viele Mitstreiter aus dem nordeutschen Raum. Jeder, der Interesse an Adobe Flex hat, ist herzlich eingeladen mitzumachen.
Geplant ist ein Treffen pro Woche.

Samstag, 4. August 2007

Flex SDK mit Standard Eclipse verknüpfen

Vor einigen Tagen tauchte im Flexforum die Frage auf: Wie verknüpfe ich Standard Eclpise mit dem Flex SDK.

Ich habe versucht die Frage im Forum zu beantworten und will hier meinen Post nochmal etwas strukturierter wiedergeben.
Eclipse lässt sich grundsätzlich mit jedem beliebigen Compiler verknüpfen.
Mit Eclipse können also auch ohne entsprechendes Plugin, Flex Applikationen enwickelt werden.
Wird Eclipse in der beschriebenen Weise verwendet, fehlen natürlich die Goodies wie:
• Anwendungen per Drag und Drop der Komponenten erstellen.
• Codecomplete
usw.

Syntax Highlighting kann durchaus verwendet werden, da es sich bei MXML um ein XML konformes Dokument handelt. Es empfiehlt sich also ein XML-Editor-Plugin für Eclipse zu installieren (oft schon in der Standard Distribution enthalten).

Eclipse für den Flex SDK einrichten

Eclipse starten.
File -> New -> Project

Im sich öffnenden Fenster wählen:
General -> Project dann auf "next" klicken und einen beliebigen Namen vergeben.

Im Package Explorer ist jetzt Dein Projekt sehen.
Ist der Package Explorer nicht zu sehen, dann:
Window -> Show View
Ein Fenster öffnet sich.
Package Explorer auswählen.
Im linken schmalen Fenster ist nun Dein Projekt sehen.

Klicke mit mit der rechten Maustaste auf das Projekt und wähle:
New -> File

Gib dem File einen Namen, z.B. Test.mxml
Testweise in diesem File folgenden Code eintragen:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:Button label="Hallo Welt"/>
</mx:Application>


Jetzt muss noch der Pfad zum Compiler deklariert werden.

Run -> External Tools ->External Tools
Ein Fenster öffnet sich.
Markiere im linken Bereich den grünen Pfeil "Programm".
Klicke jetzt auf das linke obere Symbol "New launch Configuration".
Unterhalb des grünen Pfeils taucht jetzt Deine neue Konfiguration auf,
im rechten Teil des Fensters werden die Einstellungen vorgenommen,

von oben nach unten

Name: gib einen Namen ein

Location: Klicke den Button "Browse File System" und suche nach dem FlexCompiler. (mxmlc.exe) Der liegt im bin Verzeichnis Deines SDK.

Working Directory: Klicke auf "Browse Workspace" und wähle Dein Projekt aus.

Arguments: Hier gibst Du folgendes ein:

-load-config=c:/[Pfad zum SDK]/frameworks/flex-config.xml -output=c:/[ordner, in dem das swf file landen soll ]/test.swf Test.mxml


Wähle "Run" unten links im Fenster.

Wenn alles glatt geht liegt jetzt in dem, von Dir gewähltem Output Order (bei Arguments) die swf-Datei. Per Doppelklick kann diese Datei gestartet werden, ein Button, mit der Aufschrift "Hallo Welt" sollte zu sehen sein.

Wenn Du später Dein Projekt compilieren willst, wähle:

Run -> External Tools -> [Name Deiner Configuration]

Dafür findest Du in der Regel auch einen Button in der Taskleiste (der kleinere grüne Pfeil)

Freitag, 3. August 2007

Flex Scribble Theme in China


Fleksray.org ist nun seit 6 Wochen online und hat laut Google Analytics im Durchschnitt 300 Besucher täglich. Fleksray.org soll in erster Linie eine Anlaufstelle für Flex Programmierer sein, die nach Komponenten, Skins oder Infos zur Programmierung mit dem Flex Data Service suchen. Die von mir gebastelten Skins sind eigentlich nur ein Zeitvertreib, aber gerade dafür interssieren sich die meisten Besucher. Die Skins sind nun unter anderem auch auch auf scalenine.com zu finden. Juan, der die Website betreibt hat selbst einige tolle Themes für Flex entworfen.
Ausgerechnet das Scribble Theme, das ich in einer "kreativen" Nacht zusammengeschustert habe, ist mittlerweile in einigen Blogs erwähnt. Der exotischste ist sicher der Blog vom Dreamer aus China. Als Dreamer mich in seinem Blog erwähnt hat, hatte Fleksray.org am folgenden Tag 800 Besucher und ich hatte echt Angst, dass ich mein Traffic Limit für Juli überschreite. Mittlerweile hat sich der Hype etwas gelegt, dennoch kommen täglich noch 90 Besucher aus dem Reich der Mitte. Auch in Israel,Italien, Japan und Korea ist Flekscribble bekannt.

Donnerstag, 2. August 2007

Channel.Connect.Failed error undefined url: rtmp://localhost:2038

Ist der Data Management Service des Flex LiveCycle Services (unter Verwendung des rtmp Channels) für den Client nicht erreichbar, erscheint die Fehlermeldung: undefined url: rtmp://localhost.
Im Klartext heisst das, daß der Flex Data Service den Channel für das Real Time Messaging Protokoll nicht initialisiert hat.
Die Ursachen dafür können vielfältig sein. Zuerst sollte versucht werden, die URL localhost:[port] im Browser aufzurufen. Das "rtmp" am Anfang lässt man weg, da der Browser das Real Time Messaging Protokoll nicht kennt. Hinter localhost muss der entsprechende Port angegeben werden, meist ist das 2038. Ist man nicht sicher, hilft ein Blick in die [SERVERROOT]/webapps/[CONTEXT]/WEB-INF/flex/services-config.xml Datei. In der Channeldeklartion my-rtmp ist der tatsächlich verwendete Port zu finden.
Bringt der Browser nach Eingabe der URL localhost:2038 innerhalb kurzer Zeit die Fehlermeldung "Seite nicht erreichbar" o.ä ist der Real Time Messaging Service down. Versucht der Browser endlos lange eine Seite zu laden, ist der RTMP Channel in in Betrieb (Die Seite bleibt natürlich leer).
Der erste Fall ist wahrscheinlicher (sonst würde ja die Fehlermeldung nicht kommen). Die Ursachen können von Server zu Server unterschiedlich sein und werden nicht immer mit einer Exception im Logfile quittiert. In Verbindung mit Hibernate kann der Fehler in der Deklaration der Hibernate Destination in der data-management-config.xml die Ursache sein . Wird Hibernate nicht initialisiert kann das dazu führen, dass der RTMP Service nicht gestartet wird.
Für die weitere Fehlersuche lohnt es sich, den FDS-Tomcat von Adobe herunterzuladen.
http://www.adobe.com/devnet/flex/articles/java_testdrive.html
Probeweise sollte versucht werden auf diesem Server die Problemapplikation zu deployen. Ebenfalls zu empfehlen ist in Blick in die [SERVERROOT]/webapps/[CONTEXT]/WEB-INF/lib und [SERVERROOT]/common/lib Verzeichnisse des Adobe Tomcat zu werfen. Fehlen in der eigenen Serverinstallation Jar Files, die im FDS-Tomcat vorhanden sind, kann das ebenfalls zu der Fehlermeldung: Channel.Connect.Failed error undefined url: rtmp://localhost:2038 führen.