32
Warum und Wo der Einsatz von JavaFX Sinn macht

Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

Warum und Woder Einsatz von JavaFX Sinn macht

Page 2: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

Björn Müller

• 2001 HTML/JavaScript basierte TechnologienCasabac GUI Server

• 2007 Java-basierte Client TechnologienCaptainCasa Community

• Fokus auf betriebswirtschaftliche Anwendungssystemen

– „old economy applications“

Page 3: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

CaptainCasa Community

• Community mittelständischer Softwarehäuser– Umfangreiche Geschäftsanwendungen– Kernuser: Sachbearbeiter

• Gemeinsame Rich Client Infrastruktur– Server-zentrischer Architektur– 2007 Entscheidung für Swing (!)– 2012 Entscheidung für JavaFX (Kompatibel!)

Page 4: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

Es gibt wieder eine HTML5 Alternative!

• Werdegang bisheriger Alternativen nicht ganz so erfolgreich...

– MS Silverlight– Adobe Flex

• ...oder „Geheim-Tipps“– Qt

• Wacker seit eh und je– Java Swing– Java SWT

Page 5: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

Probleme beim Positionieren von JavaFX

• Architekturdefinition durch Slogans– Wir machen alles nur noch im Browser!– HTML5 ist unsere Strategie!– Wir erlauben keine Installation auf dem Frontend!

• Oder, etwas seriöser:– HTML5 ist „in“, Java(FX) im Client ist noch nicht „in“

und braucht Überzeugungsaufwand– JavaFX im Client muss echte Vorteile bieten, um

Anwendung zu finden! – Der Einsatz von JavaFX ist kein Selbstzweck.

Page 6: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

Laufzeitumgebung des Clients

• Windows• Linux• MacOS• Android• iOS

• ...überall, wo es adäquate Browser gibt

• Windows• Linux• MacOS

• Android, iOS „angedacht“, kein konkreter Zeitpunkt

HTML5 JavaFX

Page 7: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

Programmiersprache im Client

• JavaScript

• Keine Typisierung• Prototyping

• „Aufprägen von außen“

• Nutzung als Compilat...

• Java

• Starke Typisierung• Vererbung, Interfaces

• „Struktur von innen“

HTML5 JavaFX

Page 8: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

JavaScript Prototyping

String.prototype.endsWith = function(suffix) { return this.indexOf(suffix, this.length - suffix.length) !== -1;};String.prototype.startsWith = function(prefix){ if (this.indexOf(prefix) == 0) return true; else return false;};

Page 9: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

Komponentenbibliothek

• DOM

• Browserabhängigkeiten• Einige Controls• 2D• Nicht erweiterbar

• Auf DOM aufbauende „Meta Bibliotheken“

• JavaFX

• Unabhängig v. Browser• Viele Controls• 3D, Animationen, ...• Erweiterbar

HTML5 JavaFX

Page 10: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

Performance

• JavaScript: „nicht mehr problematisch“

• DOM Operationen:„langsam“

• Up to date Hardware!

• Java:„schnell“

• Scene Graph Operationen: „schnell“

• Up to date Hardware!

HTML5 JavaFX

Page 11: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

Tools

• JavaScript Editoren• Debugger• Erste Umgebungen zum

Profilen

• Entwicklungs-umgebungen

• Debugger• Profiling• Dump Analyse• ...

HTML5 JavaFX

Page 12: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

Entwicklungseffizienz

• Native JavaScript Verwendung:„schlecht“

• „hervorragend“

HTML5 JavaFX

Page 13: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

Deployment

• „Zero!“– „Zero?“

• Webstart, Applet– JRE Preinstallation– Administrator

• Bundle– setup.msi/.exe– App-like– No Administrator

HTML5 JavaFX

Page 14: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

Einflussnahme auf Look&Feel

• CSS - „sehr gut“ • CSS - „sehr gut“

HTML5 JavaFX

Page 15: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

Langfristige Stabilität„Framework Volatilität“

HTML5 JavaFX

• Kommen und Gehen von Hypes

• Volatilität im Browser-Umfeld

• Zumindest in einer Tradition der Langfristigkeit

– Java Swing– Java SWT

• Geschlossene(re) Umfeld

Page 16: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

HTML5 – Lösung durch Frameworks?

• JavaScript Frameworks– jQuery– Sencha Touch– Qooxdoo– ...

• JavaScript Cross Compiler– GWT– Dart

Page 17: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

HTML5 – Lösung durch Frameworks?

• ...zunächst ja:– Deutliche Erleichterung im Umgang mit HTML5 und

JavaScript

• ...aber auch:– Beträchtlich hohe Frameworkstacks– Frameworknutzer müssen Frameworks verstehen, um

Problemsituationen überhaupt begegnen zu können– Abhängigkeit von Framework und dessen Hype-Cycle

• ...und am Ende:– Kunde und Endanwender sehen das Endprodukt, nicht

das Framework dazwischen...

Page 18: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

Zusammenfassung

HTML5 JavaFX

• Endgeräte• Zero Deployment

• Entwicklungseffizienz• Komponenten• Performance• Tools• Langfristige Auslegung

Page 19: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

Client Centric Server Centric

Rendering Engine

ApplicationInteraction Logic

Business Logic

„Server Side UI“

Data, Events LayoutData, Events

Fron

tend

Serv

er

JavaFXbased UI

ApplicationInteraction Logic

Client side(Pre-) Business Logic

UI

ApplicationInteraction Logic

Client side(Pre-) Business Logic

Business Logic

APIs

Fron

tend

Serv

er

Page 20: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

Client Centric

• Pro– Direktes Loslegen– Voller Zugriff auf UI Möglichkeiten– Lokale Datenhaltung möglich

• Contra– Viele Schnittstellen zum Server– Immer größer werdender Client– Frontend und Backendentwicklung

• Sinnvoller Einsatz– Kleine(re) Szenarien– Hohe Disziplin in der Entwicklung

JavaFXbased UI

ApplicationInteraction Logic

Client side(Pre-) Business Logic

UI

ApplicationInteraction Logic

Client side(Pre-) Business Logic

Business Logic

APIs

Fron

tend

Serv

er

Page 21: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

Server Centric

• Pro– Nur ein Ort der Entwicklung– Nur eine Schnittstelle– Einfaches Deployment– Abstraktion vom UI

• Contra– Kein direkter Zugriff auf Client– Synchronisation mit Logik nur über

Roundtrip• Sinnvoller Einsatz

– Umfangreiche Anwendungen

Rendering Engine

ApplicationInteraction Logic

Business Logic

„Server Side UI“

Data, Events LayoutData, Events

Fron

tend

Serv

er

Page 22: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

Frameworks

HTML5 JavaFX

Clientcentric

Servercentric

GWTjQueryQooxdooSencha Touch

JSF*Faces

Vaadin

Tapestry

JavaFXLibraries

CaptainCasa - JSFCanoo - Dolphin

Page 23: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

Szenarien

• Generell– Nicht mit Windmühlen kämpfen!

● Man mag von JavaFX angetan sein – aber es gibt Szenarien, in denen man nicht an HTML5 vorbeikommt

● Hier gilt: Mehraufwand einkalkulieren!● „Zero Installation!“ und „Run everywhere!“

hat seinen Preis– Ansatz „Ein Framework für alles!“ passt in der Regel

nicht!● ...intelligente Architektur für ein Szenario

definieren!

Page 24: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

Klare HTML5 Positionierung

• Design-first Szenarien“

HTMLCSS

Designer Entwickler

ScriptJava

Page 25: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

Klare HTML5 Positionierung

• Anonyme Endnutzer in großer Zahl– Eventuell einmal Konkurrenz durch JavaFX Bundle-

App-Installation – je nach Wertigkeit der Anwendung

Page 26: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

HTML5 JavaFX

Clientcentric

GWTjQueryQooxdooSencha Touch

JavaFXLibraries

Client-zentrische Anwendungen

Umfang

Desktop

Endgeräte

Entwicklungseffizienz

Page 27: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

HTML5 JavaFX

Servercentric

JSF*Faces

VaadinTapestry, ...

CaptainCasa - JSFCannoo - Dolphin

Server-zentrische Anwendungen

Entwicklungseffizienz

Langfristiger Betrieb

Installationsaufwand

Hype Resistenz

Page 28: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

Sinnvolle Positionierung von JavaFX

HTML5 JavaFX

Clientcentric

Servercentric

GWTjQueryQooxdooSencha Touch

JSF*Faces

Vaadin

Tapestry

JavaFXLibraries

CaptainCasa - JSFCannoo - Dolphin

UmfangreicheClients fürDesktop

Umfangreichebetriebs-

wirtschaftlicheAnwendungen

Clients mitbesonderer

Interaktivität

Page 29: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

Fazit (I)

• JavaFX ist da!– Es gibt eine Alternative zu HTML5 – im Bereich von

Desktop Endgeräten• JavaFX ist effizient(er)

– Client-centric: ganz klar!– Server-centric: keine Nebenkriegsschauplätze!

• JavaFX bedeutet Installation

Page 30: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

Fazit (II)

• Gute Einsatzgebiete von JavaFX– Funktional mächtige Desktop Clients

● Möchten Sie wirklich Ihre Logik in JavaScript formulieren?

– Desktop Clients mit besonderer, grafischer Interaktion

– Langfristig stabile Desktop Clients für Anwendungssysteme mit Sachbearbeiter/Werker-Bezug

Page 31: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

Fazit (III)

• Derzeitige Haupthemmnisse– Dominanz von „HTML5 everywhere“– Installationsaufwand

–Plattformstrategie

• Irgendwo spielt HTML5 immer eine (berechtigte!) Rolle!

– „Nur JavaFX“ macht i.d.R. keinen Sinn: wer JavaFX einsetzt, muss gleichzeitig auch beantworten können, wie er/sie HTML basierte Masken bereitstellt

Page 32: Warum und Wo - 2013.java-forum-stuttgart.de2013.java-forum-stuttgart.de/_data/2013_F2-Bjoern_Mueller-1.pdf · Björn Müller • 2001 HTML/JavaScript basierte Technologien Casabac

CaptainCasa Community

• Server-zentrische Architektur!– Java Server Faces basierte Server-Verarbeitung

• Kernmasken der Anwendung– JavaFX Client

• Self-Service / Portal / Mobile– Simple HTML5