Rappen für Kenner Webanwendungen mit Eclipse RAP · n Gewisse Unterschiede im API (hauptsächlich...

26
Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 1 Rappen für Kenner Webanwendungen mit Eclipse RAP Manfred Borzechowski [email protected] www.borzechowski.de

Transcript of Rappen für Kenner Webanwendungen mit Eclipse RAP · n Gewisse Unterschiede im API (hauptsächlich...

Rappen für Kenner – Manfred Borzechowski Copyright © 2011 EDV-Beratung Manfred Borzechowski 1

Rappen für KennerWebanwendungen mit Eclipse RAP

Manfred Borzechowski

[email protected]

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!

[email protected]