warum und wo -...
TRANSCRIPT
![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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022051805/5ff983f4e116bd7d0842f24a/html5/thumbnails/32.jpg)
CaptainCasa Community
• Server-zentrische Architektur!– Java Server Faces basierte Server-Verarbeitung
• Kernmasken der Anwendung– JavaFX Client
• Self-Service / Portal / Mobile– Simple HTML5