Flex on Rails: the Good, the Bad and the Ugly Michael Marth, viibee.com
Der Vortragende
Hintergrund in Java, Content Management, Mobile
Interessen : Rich UI (Flex, WPF) und Agile Development (Rails, Sling)
Co-founder von viibee.com
Evangelist bei Day Software
Das Projekt: viibee.com
Video-basierte Dating Plattform
Fokus auf Spass und visueller Interaktion
Flex: was und warum Flash f ür Entwickler Deployment, deployment, deployment! L ä uft im Flash Player (compiled zu swf Datei) Hat die “richtigen” Entwicklungsparadigmen UI in XML Programmierung in Actionscript Ähnlich wie WPF, XUL, … Warum nicht JS? Der Flash Player kann ein paar Tricks
Rails: was und warum?
Ruby-basiertes Framework f ü r Datenbank-gest ü tzte Web Sites
MVC Architektur, Convention-over-Configuration
Extrem effizient, fokusiert auf Entwicklerproduktivit ä t
Sehr agil (wenn man schnell mal nen Server braucht…)
viibee ist eigenfinanziert
Meine Erfahrungen mit der Integration dieser beiden best-of-breed Technologien? Vorkenntnisse über Flex und/oder Rails erw ünscht
The Good
Client-Server Kommunikation
Flex/Rails ist eher Client-Server als Web
Good news: der Rails Server muss nur Daten liefern, nicht das komplette UI
Man ben ö tigt einen Mechanismus zum Datenaustausch
Flex Client Rails Server
Client-Server Kommunikation
Gute Sache: RESTful’er Ansatz
Der Klassiker: xml über http
JSON w äre möglich, aber funktionierte bei Projektbeginn nicht wie erwartet
N ächstbeste Alternative: AMF
Flex Client Rails Server xml over http
XML/HTTP vs. AMF
XML/HTTP
Etabliert
Cachebar auf Client- und Serverseite (Vorsicht: Browserabh ängigkeiten )
Einfach zu debuggen
Implizite API
Wg Performance: alle Requests sind asynch (nicht wie eine typische Web App)
Aber: Um die Modell-Serialisierung und Deserialisierung muss man sich selbst k ümmern
AMF
Bin är, schneller
Weniger Code durch geteiltes Modell
Schwieriger zu debuggen/verstehen
Ben ötigt Web Orb Komponente
Eventuell ben ötigt man AMF trotzdem: f ü r Video Aufnahme und Wiedergabe
Werkzeuge
Eclipse: FlexBuilder und RadRails
Dieselben Konzepte: oop, Unit Tests , MVC, ant und svn (und daher auch Trac)
Silobildung weniger wahrscheinlich
The Bad
Rails Entwicklung ist sehr “DRY”
Es wird nass
Nass? Warum?
Client und Server teilen sich das Modell
Modell änderungen in der db werden von Rails automatisch propagiert, aber im Client muss man…
Den XML Parser anpassen
Das Client-seitige Modell anpassen
Die Client-seitigen Value Objects anpassen
Wahrscheinlich den Delegate anpassen
Plus: db und Client m üssen in sync sein
Daher ben ö tigt die Kommunikation ein Versionssystem
Wanna buy a Wet Suit?
Nass? Warum?
Man ben ö tigt etwas wie Cairngorm – ein Client-seitiges MVC Framework
F ür Rails Entwickler schockierend (oh Gott, J2EE ist zur ü ck)
Ein Beispiel: das Hinzuf ügen einer Methode im Rails Controller bedeutet in Cairngorm…
Erstelle ein neues Command
Erstelle einen neuen Cairngorm Event
F üge Event und Command zum Cairngorm Controller hinzu
Erstelle eventuell ein neues Value Object
Erstelle einen neuen Responder
F üge eventuell eine neue Methode zum Parsen der Response hinzu
F üge eine Methode zum Delegate hinzu
F üge einen Eintrag in services.xml hinzu
MVC ist gut Nicht-DRY-ness ist das Thema Wenn man kein MVC Framework verwendet, wird man es wahrscheinlich im Projekt neu erfinden
0 comments
Post a comment