Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 1
Rappen für KennerWebanwendungen mit Eclipse RAP
Manfred Borzechowski
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 2
Themen
n Einstieg RAP
n Unterschiede RCP-RAP
n Gestaltung der RAP-UI
n Deployment
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 3
Einstieg RAP
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 4
Eclipse RCP in a Nutshell
n Eclipse IDE: n Modular durch Plug-ins / OSGi Bundlesn Basic Core Plug-ins: OSGi, Preferences, Jobsn Basic UI Plug-ins: Workbench, SWT, JFacen Und: JDT, Mylin, Debugging, PHP, JEE, Reporting.
n Eclipse RCP: n Modulare Fat Clients n Basierend auf Eclipse Basic Core und UI Plug-insn Zusätzliche Plug-ins für Domain-Funktionalitätn Verhalten, L&F, Modularität analog Eclipse
Launcher
Launcher
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 5
Randbedingungen:Hohes Java/RCP-Know How
Geringes Seam/Ajax/CSS-Know How
Projektanforderungen
Fat Client(Eclipse RCP)
Rich Web Client(?)
Web Client(Ajax, Seam,...)
Komplexe Funktionen + o -Hoher Datendurchsatz + o -Intuitiv bedienbar - o +Design anpassbar - o +Ohne Installation lauffähig - + +Einfache Programmierung + -
n Gegeben: 2 Clients für einen Datenbestandn Fat Client: Sachbearbeitern Web Client: Online-User
n Anforderung 3. Client:n Rich Web Client für Online-Sachbearbeiter-Light
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 6
Die Idee von RAP
n Eclipse RAP: n Komplette Eclipse-Workbench läuft als (JEE) Webanwendung
n Auf dem Server:n OSGi-Container, RWT, JFace, Workbenchn Programmierung zu ca. 90-95% wie bei „normalem“ RCPn Gewisse Unterschiede im API (hauptsächlich SWT)
n Im Browser:n HTML-Widgets, die (mit Ajax) mit Server kommunizierenn (wovon der Entwickler nichts wissen muss)n Für's „Styling“ gewisse CSS-Kenntnisse nötig
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 7
Der Einstieg – Hallo RAP
n Rezeptn Man nehme ein Eclipse für RCP/RAP Developer,n konfiguriere eine RAP Target-Platform,n erstelle ein leeres Plug-in Projekt,n füge eine Dependency zu
org.eclipse.rap.ui hinzu,n erstelle eine Extension zu entrypoint,n und programmiere in der dazugehörigen Klasse analog SWT.
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 8
Weitere Beispielanwendungen
n Im Plug-in org.eclipse.rap.ui.demon Importierenn Weitere EntryPoints findenn Mit Startup-Parameter auswählen
n Ohne Parameter:n default n RAP-Anwendung mit
serverseitiger Workbench
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 9
Dokumentation und weitere Informationen
n Demo-Projekten http://rap.eclipsesource.com/rapdemo/rms
n Projekt HomePagen http://eclipse.org/rap/
n Developer Guide n Help Contents
n FAQn http://wiki.eclipse.org/RAP/FAQ
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 10
Unterschiede RCP-RAP
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 11
RWT - Unterschiede im API
n Fast vollständig vorhanden:n Layoutn Widgets
n Missing: Native Dialog, TrayItemn DnDn Events
n Nicht alle Listener werden unterstützt
n Ca. zur Hälfte vorhandenn Custom
n Missing: StyledText & Co
MISSING
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 12
Konzeptionelle Unterschiede
n Für den Programmierern Entwicklung fast wie „normales“ RCP
n Request-Response-Modell verstecktn Spezielle Beachtung der Paradigm Gaps
n Für den Anwendern Ansicht fast wie normaler Fat Client
n Keine „Seiten“, kein „Weiter“n Spezielle Beachtung der Benutzerführung
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 13
Du bist nicht allein
n Eine Workbench – mehrere (gleichzeitige) Benutzern Keine Singletons für benutzerspezifische Daten!n Session-Mechanismus notwendig
n Manuell: n RWT.getSessionStore()
n Gemanaged:n SessionSingletonBase.getInstance()
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 14
You are not alone
n Mehrere Benutzer – mehrere Sprachenn Formats, Collatoren etc spezifisch für RWT.getLocale()n Für Text-RessourceBundles besser: RWT.NLS
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 15
Dateien für den Benutzer
n Kein FileDialog, FileOutputStream nicht möglichn Alternativ: Browser-Widget
n Download-Link mit setText()n Anzeige oder sofort-Download mit setUrl()
n Aber: Wohin zeigt die URL?n In das Internet (trivial)n In lokale statische Ressource (konfigurieren)n Auf ServiceHandler (programmieren)
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 16
Dateien vom Benutzer
n Kein FileDialog, direkter FileInputStream nicht möglichn Alternativ:
n Upload-Widget (Plug-in org.eclipse.rwt.widgets.upload)
n Daten landen in Session-spezifischem FileStoren Listener werden bei Fortschritt, Fehler und Ende benachrichtigt
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 17
Rückruf
n Manipulation von RWT-Widgets nur im UI-Threadn Änderungen aus nicht-UI-Thread
n in Runnable verpacken und mit Display.(a)syncExec() ausführenn Zusätzlich UICallBack-Mechanismus aktivieren und deaktivieren
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 18
Gestaltung der RAP-UI
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 19
Themes – Bilder und Styles
n Das RAP-Demo-Plug-in enthält ein alternatives Themen Muss als Extension konfiguriert werden
n Icons für Dialoge
n Grafische Widget-Elementen Nicht für Scrollbar
n CSS-StyleSheetn Styles für SWT-Widgets n Qualifiziert nach
verwendetem SWT-Style
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 20
Branding – It's tea-time
n Ein Branding kombiniert n Themen favicon.icon Servlet-Namen Hintergrund-HTML
n Aufruf mit Servlet-Name (anstelle rap) zeigt Theme
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 21
Presentation – Let's do Business
n Ein Branding kann zusätzlich eine PresentationFactory referenzierenn Icons für grafische
Workbench-Elementen Klassen zum Layouten
von n MenuBarn CoolBarn ViewPartsn ...
n 2 Beispiele im Plug-in org.eclipse.rap.design.examplen "fancy" und "business"
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 22
Ein eigenes Business gestalten
n Theme-Icons
n Workbench-Icons
n CSS
n Layout-Klassen
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 23
Deployment
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 24
Layout einer RAP Webanwendung
definiert zu startende OSGi-Bundles
die OSGi-Bundles
steuert OSGi-Framework und delegiert HTTP-Requests
konfiguriert Servlet-Bridge
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 25
Vorgehensweise
n Feature-Projekt und ServletBridge auscheckenn psf-Datei aus Online-Help benutzen
n Feature-Umfang definierenn Inklusive Theme oder Design (wg Servlet-Name)
n Ggf. web.xml anpassenn Z.B. zusätzliche jsp-Dateien, consoleLog, console
n Intern Feature exportierenn PDE Export, JRE der Workbench verwenden
n Config-File erstellenn Mit ConfigIniCreator aus Feature-Projekt
n War-Datei bauen
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 26
Fragen?
Vielen Dank!