SlideShare ist ein Scribd-Unternehmen logo
1 von 56
Hybride Schönheit
Die (Wieder-)Entdeckung des Java/JavaScript Webframeworks Echo

Christof May
Barco

Benjamin Schmid
eXXcellent solutions
Willkommen!

https://secure.flickr.com/photos/7502393@N04 alborzshawn

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Prämissen

Java-Welt
Effizient
Einfach
Funktionalität vs. HTML

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
UMFRAGE

"Perfektion entsteht nicht dann,

wenn man nichts mehr hinzuzufügen hat,

sondern wenn man nichts mehr wegnehmen kann.
Antoine de Saint-Exupéry

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Darum!
Swing-like
Single-Page
Effizient & Stabil
»Alternativlos«
Pfad nach JavaScript
Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Lizenz

MPL oder LGPL
Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“

http://www.sxc.hu/browse.phtml?f=view&id=1068313
Unterpunkt 1
● Unterpunkt 2
● ...
●

Überblick

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Entwicklung
Pure Server
Server Pages with Ajax
Component-based Pages
Single-page (HTML)
Single-page (Components)
Pure Client
Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Echo Komponenten

Models
Events
Properties

button.setText(“foo”)
button.addActionListener(...)
button.setForeground(Color.RED)

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Hybride Client/Server API
Gleiches Modell & Struktur
auf Server & Client
Drei Programmiermodelle
● Rein Client-seitig (JavaScript)
● Rein Serverseitig (Java)
● Mischbetrieb
(Beides)
Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Unterpunkt 1
● Unterpunkt 2
● ...
●

Architektur

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Client-seitige JavaScript Anwendung
Browser

Applikations-Logik
Modell

Komponenten-Events

Echo
Komponenten

HTML

DOM

Sync
DOM
Events

Styles

Echo Engine (Fokus, Lifecycle, …)
CoreJS
Web Renderer

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“

CSS
Ein Blick unter die Haube (Client-App)
1.
2.

Anwendungsentwicklung gegen Echo Komponenten.
CoreJS mit JavaScript-Spracherweiterungen
a. Für klassenbasierte OO und weitere Java-Nähe
b.

3.

Echo API & Styling erlaubt und harmonisiert:
a. HTML-freie, dynamische GUI-Entwicklung
b.

4.

Ohne Eingriffe & damit maximal kompatibel

Keine Abhängigkeiten zum “Web Renderer” Modul

Sync-Layer
a. Adaptierte Umsetzung & Anbindung einer HTML/CSSDarstellung
b.

5.

Behandelt von Browser-Bugs & Eigenheiten

Echo Engine steuert Komponenten-Lebenszyklus, Eingabefokusund Fensterverwaltung, Event-Anbindung und mehr

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Hello World mit JavaScript

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Half-Object Plus Protocol (HOPP)

Panel

Button
Textfield
…

Daten

Events

Server

Siehe auch http://heise.de/-506386
Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“

Panel

Button
Textfield
…

Daten
Events

Client
Server-Side Anwendungen
Remoting Engine

Applikations-Logik

A

X
JA

P
OP
H

/

Echo
Komponenten

Echo
Komponenten
Peers

Sync

Styles

Styles

Echo Engine
Servlet

CoreJS
Web Renderer

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“

Web Renderer

Browser
Server/Client Sync-Zyklus
Update
Manager:

AJAX call:

Peers

Lifecycle

Translates
changes from
DOM to Model

Queued /
Immediate
Model
update

Encode &
send to
server

Receive &
Decode
changes

Trigger
user
events

Browser:

Sync:

Engine:

Display

Update
DOM

Decode &
Update
Models +
Components

Peers:

Update
Manager:

Encode

Collect
changes

Client
Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“

Server

Application Logic

Sync:
Performance & Netzverkehr
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<smsg i="30" u="">
<libs>
<lib>Echo.Label</lib>
</libs>
<group i="init"/>
<group i="update">
<dir proc="CSyncRm">
<rm i="C.485" rm="C.486,C.487"/>
</dir>
<dir proc="CSyncUp">
<up i="C.501">
<c i="C.813" t="L">
<p n="text">Hello World!</p>
<p n="icon" t="I">!I!153b2cb_140da729c5a_6a</p>
</c>
</up>
</dir>
</group>
</smsg>
Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Live-Demo (“Todo Application”)
Quellcode:
https://github.com/exxcellent/echo3-todomvc
Wir sehen
●
●
●
●

Java API
Netzverkehr
Debugging
Styling

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Unterpunkt 1
● Unterpunkt 2
● ...
●

Features

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
RIA: “Native-like” Web-Anwendungen

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Transparenter Browser-Support

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Komponenten
Echo Extras

Echolot

EchoPoint NG
...
Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
“Dynamik”
●

●
●

●

Dynamisches Nachladen von Bibliotheken &
Komponenten
Schneller Anwendungsstart
Auch zu Laufzeit gernerierte Forms/UI möglich
(vs. HTML, ZK, GWT)
Beim Entwickeln: Meisten Änderungen ohne
Neustart sofort anwendbar

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
...und was ist mit uns Entwicklern?

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Server-Push / Websockets

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Gleiche Komponenten-API Client/Server
Java:
Button btn = new Button(“Hello World!”);
btn.setBackground(Color.gray);
btn.addActionListener(...);
panel.add(btn);

JavaScript:
var btn = new Echo.Button({text: "Hello World!"});
btn.set("background", "#888888");
btn.addListener("action", function(e){alert("Hello")});
panel.add(btn);

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
JavaScript OO

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Styling
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ss>
<!-- Style 1 -->
<s n="MyButtonStyle" t="Button">
<p n="background">#e7e7e7</p>
<p n="insets">1px 8px</p>
<p n="border">1px ridge #414141</p>
<p n="backgroundImage">
<fi r="x" t="ResourceImageReference">
/image/fill/fill1.jpg
</fi>
</p>
<p n="lineWrap">false</p>
</s>
<s n="MyTextStyle" t="TextComponent">
</s>
<s n="MyRowStyle" t="nextapp.echo.app.Row">
<p n="alignment">
<a h="right" />
</p>
</s>
<s n="MyContentPaneStyle" t="ContentPane">
<p n="background">#c0c0c0</p>
</s>
</ss>

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Echo Studio

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Echo Studio

●
●
●
●

●

Eclipse-Plugin von NextApp
WYSIWYG Editor für Dialoge
Editor für Echo Stylesheets
Generierte Java-Views
wenig intrusiv und gut weiterverwendbar
In Planung: Open-Source

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Unterpunkt 1
● Unterpunkt 2
● ...
●

Live-Demo
Verschiedene Echo Desktop und Tablet-Anwendungen

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Live: “Rent-a-Tank”

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Live: “Rent-a-Tank”

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Live: “Rent-a-Tank”

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Live: “Rent-a-Tank”

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Live: “Rent-a-Tank”

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
buslogistik.de

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Barco Applikation (auf Nexus 7)

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Hands-on
Erstellung einer eigenen Echo-Komponente

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Entwicklung eigener Komponenten

Quellcode:
https://github.com/chrismay2/echo3template
Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Unterpunkt 1
● Unterpunkt 2
● ...
●

Echo im Vergleich

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Technologischer Überblick
Aspekt

GWT UI

Vaadin

ZK

RAP

Echo

GWT

GWT

jQuery

quoxdoo

Echo

Client-side API

***

nein

nein

nein

ja

Java/JavaScript
Mischbetrieb

teils

ab 7.0

?

nein

voll

Programmiermodell

Java

Java

Java

Java

Java /
JavaScript

Cross-Compilation
notwendig

ja

(ja)

nein

nein

nein

Visueller Editor

ja

ja

ja

ja

ja

KomponentenEntwicklung

via GWT

via GWT

?

?

plain
JavaScript

SDK or

s. GWT

?

Eclipse

keine

Basistechnologie

Abhängigkeiten

Eclipse Plugin

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
GWT

+

Grosse Entwicklerbasis
Community Support
Beliebig skalierbar

-

Benötigt IDE/Build Tools
Komplexe Projektstruktur
Zeitaufwändiger Kompiliervorgang
Mehr Client/Server Sync Code
notwendig
“Endlose” Suche nach Serialisierungsproblemen
Keine dynamische UI
Sprachmix (Java, XML, HTML, CSS)

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Vaadin

+

Grosse Entwicklerbasis
Kommerzieller Support
Geräteabh. Views
“Mainstream”

-

Benötigt IDE Tools (u.a. Facets)
Teurer Support (1000€/Jahr)
Komplexe Projektstruktur
Zeitaufwändiger Kompiliervorgang
Warum brauche ich Plugins (SpaceWrapper, CSSInject) um
einfachste Aufgaben auszuführen?
Widget-Entwicklung schwierig und langwierig
Generierte Artifakte im src-Folder...
Sprachmix (Java, XML, HTML, CSS)
Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
ZK

+

Guter (schneller) Support
Deklarative UI (ZUL)

●
●

-

Teure Lizenz (1790$/y/dev)
Custom-Komponenten?

Optimiert für ZUL- suboptimal für Java-UI (Richlets)
API un-intuitive und schwer verständlich
Erfordert “ungewohnten” Programmierstil

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Eclipse RAP/Tabris

+

Kommerzieller Support
Bekannte API
Native Widgets

-

Native Widgets
Lizenzkosten für Tabris
Custom-Komponenten dürften schwierig
sein (?)
Beschränkt auf Eclipse-API (pre-Java 1.4)
Sehr beschränkte Features (Animated Gif, Button Alignment etc.)
Styling extrem schwierig bis unmöglich

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Echo3

+

Intuitive, effiziente API
Client-only oder Client/Server
Schnell, super-stabil
Sauberer Code/Architektur
“It just works”

-

(Noch?) kein kommerzieller Support
Bisher abhängig von einer Einzelperson
Bekanntheitsgrad, Marketing
Standard-Themes nicht mehr zeitgemäß
hmm...

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Fazit

Fazit

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Quo vadis Web-Entwicklung?
● Umfrage-Wunschliste
● Entwicklungstendenzen
○ Mobile
○ HTML5
○ Light-weight & Scripting
○ Innovation im Java-Ökosystem?

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Echo Roadmap
● Sichtbarkeit & Coolness-Faktor
○

Neue Website

○

Flat-UI Theme

○

Annäherung an das JavaScript-Ökosystem

● Echo going
○

Mobile

○

Modern Browsers (legacy IE-Support)

○

HTML5

● Browser History & CSS3

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Mitmachen!
● Einfach Benutzen, Feedback geben
● Bugs oder Verbesserungen melden
● Eigene Komponenten erstellen und
teilen
● Bugfixes oder neue Featurtes per
GitHub
● Neue Webseite
● Auf Forum posten
Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Rede & Antwort
Ihre Fragen, Anmerkungen und Meinungen?

Herbstcampus 2013 – Hybride Schönheit: Das Web-Framework „Echo“
Vielen Dank!
https://github.com/echo3
Christof May
Barco Control Rooms GmbH
Greschbachstraße 5a
D-76229 Karlsruhe

mail@chrismay.de

Benjamin Schmid
eXXcellent solutions
Beim Alten Fritz 2
D-89075 Ulm
Twitter: @bentolor
b.schmid@exxcellent.de

Weitere ähnliche Inhalte

Ähnlich wie Hybride Schönheit - Das Java/JavaScript Webframeworks Echo

HTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenHTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenMayflower GmbH
 
German: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit JavascriptGerman: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit JavascriptRalf Schwoebel
 
What about Accessibility of Next Generation User Interfaces for People with D...
What about Accessibility of Next Generation User Interfaces for People with D...What about Accessibility of Next Generation User Interfaces for People with D...
What about Accessibility of Next Generation User Interfaces for People with D...Sven Jenzer
 
Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft AG
 
Einführung Progressive Web App
Einführung Progressive Web AppEinführung Progressive Web App
Einführung Progressive Web AppSebastian Blum
 
Webseiten für mobile Geräte - M-Days - Frankfurt 27.01.2011
Webseiten für mobile Geräte - M-Days - Frankfurt 27.01.2011Webseiten für mobile Geräte - M-Days - Frankfurt 27.01.2011
Webseiten für mobile Geräte - M-Days - Frankfurt 27.01.2011Patrick Lauke
 
HTML5 im Überblick - semantisches HTML, Geolocation, Offline-Webanwendungen, ...
HTML5 im Überblick - semantisches HTML, Geolocation, Offline-Webanwendungen, ...HTML5 im Überblick - semantisches HTML, Geolocation, Offline-Webanwendungen, ...
HTML5 im Überblick - semantisches HTML, Geolocation, Offline-Webanwendungen, ...Karionis
 
Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2
Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2
Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2Manfred Steyer
 
28. Treffen - Christian Pfahl - Agile Softwareentwicklung und Architektur-Dok...
28. Treffen - Christian Pfahl - Agile Softwareentwicklung und Architektur-Dok...28. Treffen - Christian Pfahl - Agile Softwareentwicklung und Architektur-Dok...
28. Treffen - Christian Pfahl - Agile Softwareentwicklung und Architektur-Dok....NET User Group Rhein-Neckar
 
Android Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickelnAndroid Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickelnAndré Krämer
 
Jax07 - Mixing Ajax Swing and Flash
Jax07 - Mixing Ajax Swing and FlashJax07 - Mixing Ajax Swing and Flash
Jax07 - Mixing Ajax Swing and Flashpersillie
 
Rich Internet Applications
Rich Internet ApplicationsRich Internet Applications
Rich Internet ApplicationsOliver Belikan
 
Development in der Cloud-Ära
Development in der Cloud-ÄraDevelopment in der Cloud-Ära
Development in der Cloud-ÄraAndreas Koop
 

Ähnlich wie Hybride Schönheit - Das Java/JavaScript Webframeworks Echo (20)

HTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenHTML5 und node.js Grundlagen
HTML5 und node.js Grundlagen
 
German: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit JavascriptGerman: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit Javascript
 
What about Accessibility of Next Generation User Interfaces for People with D...
What about Accessibility of Next Generation User Interfaces for People with D...What about Accessibility of Next Generation User Interfaces for People with D...
What about Accessibility of Next Generation User Interfaces for People with D...
 
Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform Apps
 
Einführung Progressive Web App
Einführung Progressive Web AppEinführung Progressive Web App
Einführung Progressive Web App
 
Webseiten für mobile Geräte - M-Days - Frankfurt 27.01.2011
Webseiten für mobile Geräte - M-Days - Frankfurt 27.01.2011Webseiten für mobile Geräte - M-Days - Frankfurt 27.01.2011
Webseiten für mobile Geräte - M-Days - Frankfurt 27.01.2011
 
Hdc2012 cordova-präsi
Hdc2012 cordova-präsiHdc2012 cordova-präsi
Hdc2012 cordova-präsi
 
HTML5 im Überblick - semantisches HTML, Geolocation, Offline-Webanwendungen, ...
HTML5 im Überblick - semantisches HTML, Geolocation, Offline-Webanwendungen, ...HTML5 im Überblick - semantisches HTML, Geolocation, Offline-Webanwendungen, ...
HTML5 im Überblick - semantisches HTML, Geolocation, Offline-Webanwendungen, ...
 
BizSpark goes Cloud
BizSpark goes CloudBizSpark goes Cloud
BizSpark goes Cloud
 
Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2
Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2
Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2
 
Cappuccino und Atlas
Cappuccino und AtlasCappuccino und Atlas
Cappuccino und Atlas
 
091124 cappuccino atlas
091124 cappuccino atlas091124 cappuccino atlas
091124 cappuccino atlas
 
28. Treffen - Christian Pfahl - Agile Softwareentwicklung und Architektur-Dok...
28. Treffen - Christian Pfahl - Agile Softwareentwicklung und Architektur-Dok...28. Treffen - Christian Pfahl - Agile Softwareentwicklung und Architektur-Dok...
28. Treffen - Christian Pfahl - Agile Softwareentwicklung und Architektur-Dok...
 
Android Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickelnAndroid Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickeln
 
Jax07 - Mixing Ajax Swing and Flash
Jax07 - Mixing Ajax Swing and FlashJax07 - Mixing Ajax Swing and Flash
Jax07 - Mixing Ajax Swing and Flash
 
Rich Internet Applications
Rich Internet ApplicationsRich Internet Applications
Rich Internet Applications
 
Offline Arbeiten
Offline ArbeitenOffline Arbeiten
Offline Arbeiten
 
Development in der Cloud-Ära
Development in der Cloud-ÄraDevelopment in der Cloud-Ära
Development in der Cloud-Ära
 
Development in der Cloud-Ära
Development in der Cloud-ÄraDevelopment in der Cloud-Ära
Development in der Cloud-Ära
 
VDC Newsletter 2013-07
VDC Newsletter 2013-07VDC Newsletter 2013-07
VDC Newsletter 2013-07
 

Mehr von Benjamin Schmid

Power catch up - Everything Practical and Important in Java 9 to 13
Power catch up - Everything Practical and Important in Java 9 to 13Power catch up - Everything Practical and Important in Java 9 to 13
Power catch up - Everything Practical and Important in Java 9 to 13Benjamin Schmid
 
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEESchnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEEBenjamin Schmid
 
Komponentenorientierte Webanwendungen mit wingS 2.0
Komponentenorientierte Webanwendungen mit wingS 2.0 Komponentenorientierte Webanwendungen mit wingS 2.0
Komponentenorientierte Webanwendungen mit wingS 2.0 Benjamin Schmid
 
Der 10-Punkte Plan für den sicheren Weg zum nicht-wartbaren Code
Der 10-Punkte Plan für den sicheren Weg zum nicht-wartbaren CodeDer 10-Punkte Plan für den sicheren Weg zum nicht-wartbaren Code
Der 10-Punkte Plan für den sicheren Weg zum nicht-wartbaren CodeBenjamin Schmid
 
Automatisierte GUI-Tests mit Selenium
Automatisierte GUI-Tests mit SeleniumAutomatisierte GUI-Tests mit Selenium
Automatisierte GUI-Tests mit SeleniumBenjamin Schmid
 
Auf dem Weg zu Unwartbarkeit - Die besten Strategien für den sicheren Erfolg!
Auf dem Weg zu Unwartbarkeit - Die besten Strategien für den sicheren Erfolg!Auf dem Weg zu Unwartbarkeit - Die besten Strategien für den sicheren Erfolg!
Auf dem Weg zu Unwartbarkeit - Die besten Strategien für den sicheren Erfolg!Benjamin Schmid
 
Vital und fit bis ins hohe Alter: Refactoring im Projekt
Vital und fit bis ins hohe Alter: Refactoring im ProjektVital und fit bis ins hohe Alter: Refactoring im Projekt
Vital und fit bis ins hohe Alter: Refactoring im ProjektBenjamin Schmid
 
Datenbank-Refactoring mit LiquiBase
Datenbank-Refactoring mit LiquiBaseDatenbank-Refactoring mit LiquiBase
Datenbank-Refactoring mit LiquiBaseBenjamin Schmid
 
Vielfalt vs. Abstraktion - Der Jakobsweg der modellbasierten GUI-Entwicklung
Vielfalt vs. Abstraktion - Der Jakobsweg der modellbasierten GUI-EntwicklungVielfalt vs. Abstraktion - Der Jakobsweg der modellbasierten GUI-Entwicklung
Vielfalt vs. Abstraktion - Der Jakobsweg der modellbasierten GUI-EntwicklungBenjamin Schmid
 
Scharfe Anmerkungen für Java 6 mit Lombok
Scharfe Anmerkungen für Java 6 mit LombokScharfe Anmerkungen für Java 6 mit Lombok
Scharfe Anmerkungen für Java 6 mit LombokBenjamin Schmid
 
Das lustige Überlebenshandbuch für JavaScript
Das lustige Überlebenshandbuch für JavaScriptDas lustige Überlebenshandbuch für JavaScript
Das lustige Überlebenshandbuch für JavaScriptBenjamin Schmid
 
Trittsicher auf allen Mobilen Pfaden mit HTML5 & jQuery Mobile
Trittsicher auf allen Mobilen Pfaden mit HTML5 & jQuery MobileTrittsicher auf allen Mobilen Pfaden mit HTML5 & jQuery Mobile
Trittsicher auf allen Mobilen Pfaden mit HTML5 & jQuery MobileBenjamin Schmid
 
Next Generation Java - Ceylon, Kotlin, Scala & Fantom im Überblick
Next Generation Java - Ceylon, Kotlin, Scala & Fantom im ÜberblickNext Generation Java - Ceylon, Kotlin, Scala & Fantom im Überblick
Next Generation Java - Ceylon, Kotlin, Scala & Fantom im ÜberblickBenjamin Schmid
 
'Git started' für Fortgeschrittene!
'Git started' für Fortgeschrittene!'Git started' für Fortgeschrittene!
'Git started' für Fortgeschrittene!Benjamin Schmid
 

Mehr von Benjamin Schmid (14)

Power catch up - Everything Practical and Important in Java 9 to 13
Power catch up - Everything Practical and Important in Java 9 to 13Power catch up - Everything Practical and Important in Java 9 to 13
Power catch up - Everything Practical and Important in Java 9 to 13
 
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEESchnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
 
Komponentenorientierte Webanwendungen mit wingS 2.0
Komponentenorientierte Webanwendungen mit wingS 2.0 Komponentenorientierte Webanwendungen mit wingS 2.0
Komponentenorientierte Webanwendungen mit wingS 2.0
 
Der 10-Punkte Plan für den sicheren Weg zum nicht-wartbaren Code
Der 10-Punkte Plan für den sicheren Weg zum nicht-wartbaren CodeDer 10-Punkte Plan für den sicheren Weg zum nicht-wartbaren Code
Der 10-Punkte Plan für den sicheren Weg zum nicht-wartbaren Code
 
Automatisierte GUI-Tests mit Selenium
Automatisierte GUI-Tests mit SeleniumAutomatisierte GUI-Tests mit Selenium
Automatisierte GUI-Tests mit Selenium
 
Auf dem Weg zu Unwartbarkeit - Die besten Strategien für den sicheren Erfolg!
Auf dem Weg zu Unwartbarkeit - Die besten Strategien für den sicheren Erfolg!Auf dem Weg zu Unwartbarkeit - Die besten Strategien für den sicheren Erfolg!
Auf dem Weg zu Unwartbarkeit - Die besten Strategien für den sicheren Erfolg!
 
Vital und fit bis ins hohe Alter: Refactoring im Projekt
Vital und fit bis ins hohe Alter: Refactoring im ProjektVital und fit bis ins hohe Alter: Refactoring im Projekt
Vital und fit bis ins hohe Alter: Refactoring im Projekt
 
Datenbank-Refactoring mit LiquiBase
Datenbank-Refactoring mit LiquiBaseDatenbank-Refactoring mit LiquiBase
Datenbank-Refactoring mit LiquiBase
 
Vielfalt vs. Abstraktion - Der Jakobsweg der modellbasierten GUI-Entwicklung
Vielfalt vs. Abstraktion - Der Jakobsweg der modellbasierten GUI-EntwicklungVielfalt vs. Abstraktion - Der Jakobsweg der modellbasierten GUI-Entwicklung
Vielfalt vs. Abstraktion - Der Jakobsweg der modellbasierten GUI-Entwicklung
 
Scharfe Anmerkungen für Java 6 mit Lombok
Scharfe Anmerkungen für Java 6 mit LombokScharfe Anmerkungen für Java 6 mit Lombok
Scharfe Anmerkungen für Java 6 mit Lombok
 
Das lustige Überlebenshandbuch für JavaScript
Das lustige Überlebenshandbuch für JavaScriptDas lustige Überlebenshandbuch für JavaScript
Das lustige Überlebenshandbuch für JavaScript
 
Trittsicher auf allen Mobilen Pfaden mit HTML5 & jQuery Mobile
Trittsicher auf allen Mobilen Pfaden mit HTML5 & jQuery MobileTrittsicher auf allen Mobilen Pfaden mit HTML5 & jQuery Mobile
Trittsicher auf allen Mobilen Pfaden mit HTML5 & jQuery Mobile
 
Next Generation Java - Ceylon, Kotlin, Scala & Fantom im Überblick
Next Generation Java - Ceylon, Kotlin, Scala & Fantom im ÜberblickNext Generation Java - Ceylon, Kotlin, Scala & Fantom im Überblick
Next Generation Java - Ceylon, Kotlin, Scala & Fantom im Überblick
 
'Git started' für Fortgeschrittene!
'Git started' für Fortgeschrittene!'Git started' für Fortgeschrittene!
'Git started' für Fortgeschrittene!
 

Hybride Schönheit - Das Java/JavaScript Webframeworks Echo