adobe flex & grails - jug.ch · basel · bern · lausanne · zurich · düsseldorf ·...
Post on 05-Sep-2019
0 Views
Preview:
TRANSCRIPT
Basel · Bern · Lausanne · Zurich · Düsseldorf · Frankfurt/M. · Freiburg i. Br. · Hamburg · Munich · Stuttgart · Vienna
Adobe Flex & GrailsRIA, REST und XML
Pascal SchudelConsultantpascal.schudel@trivadis.com
Mischa KöllikerPrincipal Consultantmischa.koelliker@trivadis.com
JUGS Zürich, 8. Juli 2010
© 2010© 2010
Was haben wir gebaut?
Adobe Flex & Grails - RIA, REST und XML 2
Adobe Flex
Grails-App 2
Grails-App 1
Grails-App 3
Adobe Flex
HTML
MySQL Oracle Sybase
© 2010© 2010
Der übliche Weg: BlazeDS und AMF
Adobe Flex & Grails - RIA, REST und XML 3
Adobe Flex
Grails-App 2
Grails-App 1
Grails-App 3
Adobe Flex
HTML
BlazeDS BlazeDS
AM
F
AM
F
© 2010© 2010
Script-Clients: REST & XML
Adobe Flex & Grails - RIA, REST und XML 4
Adobe Flex
Grails-App 2
Grails-App 1
Grails-App 3
Adobe Flex
HTML(Perl)-Scripte
REST/X
ML
© 2010© 2010
Sehr heterogene Systemlandschaft
• Client
–Browser
–Betriebssysteme
• Server
–Datenbanken
Adobe Flex & Grails - RIA, REST und XML 6
© 2010© 2010
Flex & Grails – WTF?
Roundtrip by example
Holz- oder Königsweg?
Adobe Flex & Grails - RIA, REST und XML 7
© 2010© 2010
Wer wir sind• Pascal Schudel
– Java Consultant– Grails-Experte
• Mischa Kölliker– Java & SOA Consultant– Buchautor– Architektur, Konzeption
• Trivadis AG– Enterprise-Lösungen mit Java-, Oracle-
und Microsoft-Technologien– 550 Mitarbeiter an 11 Standorten in DACH
Rich Domain Model mit JPA 2.0 8
© 2010© 2010
Flex & Grails – WTF? .
Roundtrip by example
Holz- oder Königsweg?
Adobe Flex & Grails - RIA, REST und XML 9
© 2010© 2010
Grails
• Open-source
• RIAD – Rapid Internet Application Development
• Action-basiert (im Gegensatz zu Komponenten-basiert)
• MVC-basiert
Adobe Flex & Grails - RIA, REST und XML 12
View
ModelControllerRequest
Response
© 2010© 2010
Grails Technologiestack
Adobe Flex & Grails - RIA, REST und XML 13
Grails
Java EE Spring Hibernate Groovy
Java Development Kit(JDK)
Java Language
Java Virtual Machine
Sitemesh
© 2010© 2010
Eine Grails-Anwendung erstellen
Adobe Flex & Grails - RIA, REST und XML 14
> grails create-app bookstore
> cd bookstore
> grails run-app
© 2010© 2010
Die aktuellen Top 3 RIA-Frameworks
• Adobe Flex
• Microsoft Silverlight
• JavaFX
Adobe Flex & Grails - RIA, REST und XML 17
© 2010© 2010
Adobe Flex Stack
Adobe Flex & Grails - RIA, REST und XML 18
Flex Applikation
Flash Plugin
Beliebiger Browser
Beliebiges OS
AIRRuntime
© 2010© 2010
• MXML: statisch
• ActionScript: dynamisch
• Flex SDK: Komponenten
Adobe Flex & Grails - RIA, REST und XML 20
FlexSDK
MXML
ActionScript
© 2010© 2010
Flex & Grails – WTF?
Roundtrip by example .
Holz- oder Königsweg?
Adobe Flex & Grails - RIA, REST und XML 24
© 2010© 2010
Kommunikation zum Server mit HTTPService
• Service-Stub-Definition in Services.mxml:
• Service aufrufen:
Adobe Flex & Grails - RIA, REST und XML 27
© 2010© 2010
Grails Url-Mapping
• REST URL Mapping
– URL Mapping mit Groovy DSL definieren
Adobe Flex & Grails - RIA, REST und XML 29
© 2010© 2010
XML parsen
• Convenience inkl. Databinding
• XML parsen mit XmlSlurper (Groovy/Grails)• request.XML + GPath (ähnlich wie E4X)
– def xml = request.XMLxml.people.each { p -> …. }
• Flache XML-Struktur wird in älteren Grails Versionen automatisch in eine Map geparst
– Ab Grails 1.1 aktivierbar über URL Mapping
Adobe Flex & Grails - RIA, REST und XML 30
© 2010© 2010
Grails Finder
• Dynamische Finder-Methoden– Performance verschlechtert sich bei vielen Aufrufen
• Alternative Finder– Hibernate-Criteria API
– Hibernate-Queries
Adobe Flex & Grails - RIA, REST und XML 32
© 2010© 2010
Grails Plugin-System
• Abgespeckte Grails-Anwendungen
• Der Plugin-Inhalt wird in die Ordner der Grails-Anwendungkopiert (zur Laufzeit)
• Über 400 Plugins verfügbar
Adobe Flex & Grails - RIA, REST und XML 33
Gra
ils-A
nw
end
un
g
Plu
gin
© 2010© 2010
Suchen mit Searchable-Plugin I/II
• Volltextsuche
• Basiert auf Compass und Apache Lucene
• Pro Domain-Klasse konfigurierbar welche Attribute im Index vorhanden sein sollen
Adobe Flex & Grails - RIA, REST und XML 34
© 2010© 2010
Daten an Client zurück senden
• Template (GStringTemplate)
Adobe Flex & Grails - RIA, REST und XML 37
• XML serialisieren• „Convenience“
• Builder
© 2010© 2010
Response verarbeiten mit HTTPService
Antwort direkt im DataGrid (Tabelle) anzeigen:
Adobe Flex & Grails - RIA, REST und XML 39
© 2010© 2010
Response verarbeiten mit HTTPService
Sie erinnern sich: Service-Aufruf
Antwort verarbeiten:
Adobe Flex & Grails - RIA, REST und XML 41
© 2010© 2010
Flex & Grails – WTF?
Roundtrip by example.
Holz- oder Königsweg? .
Adobe Flex & Grails - RIA, REST und XML 43
© 2010© 2010
Grails und Flex für Um-/Einsteiger geeignet
• Kunde hat grosses Wissen in Perl, PL/SQL und Oracle Forms
• Konnte nach kurzer Zeit im Projekt mitarbeiten
Adobe Flex & Grails - RIA, REST und XML 44
© 2010© 2010
Ein paar RESTriktionen
• Browser Design-Beschränkung:– Nur GET- und POST-Requests möglich
• Mögliche Workarounds:– Alternative URL: /nameToIp/save/123
– BlazeDS als Proxy (useProxy=„true“)
– Seit Grails 1.2• HTTP Header X-HTTP-Method-Override
• URL-Parameter _method
Adobe Flex & Grails - RIA, REST und XML 45
© 2010© 2010
Entwicklungsumgebungen / Lizenzkosten
• Adobe Flash Builder (früher Flex Builder, Eclipse Plugin)
– GUI-Designer
– Code Completion
– Debugger
– Lizenzkosten: Fr. 0.- / Fr. 300.- / Fr. 890.-
• IntelliJ IDEA
– Aktuell beste Unterstützung für Grails• Code Completion (bspw. auch für dynamische Finder)
• Wizards für Controller, Services
– Kein GUI-Builder für Flex
– Lizenzkosten: $99 / $249 / $599Adobe Flex & Grails - RIA, REST und XML 46
top related