74
Joonas Lehtinen 2010 J3 Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JS

soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Embed Size (px)

DESCRIPTION

Joonas Lehtinen Get introduced to the Vaadin Web framework by one of its core developers, Joonas Lehtinen. The Vaadin framework provides a desktop-like programming model on the server for creating Rich Internet Applications (RIAs) in plain Java - without the need for HTML, XML, plug-ins or JavaScript. In this session, Joonas lays out the key concepts of the server-side RIA development model and compares it to client-side RIA. To demonstrate the use of framework, an example application is developed during the session step-by-step. The presentation is concluded with pointers on how to start developing your own applications with Apache-licensed Vaadin-framework.

Citation preview

Page 1: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Joonas Lehtinen

2010

J3

Vaadin - Rich Web Applications in Server-sideJava without Plug-ins or JS

Page 2: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Agilité iPhone Java Incubateur

8:15 Accueil des participantsAccueil des participantsAccueil des participantsAccueil des participants

8:40 Mot des organisateurs & Criée des orateursMot des organisateurs & Criée des orateursMot des organisateurs & Criée des orateursMot des organisateurs & Criée des orateurs

9:00 Keynote de Nicolas Martignole (30 minutes)Keynote de Nicolas Martignole (30 minutes)Keynote de Nicolas Martignole (30 minutes)Keynote de Nicolas Martignole (30 minutes)

9:40

10:40

- A1 -Le terrain Agile

Jean-Philippe Vigniel

- I1-Hello iPhone

Stephane Tavera

- J1 -NOSQL also means RDF stores: an

Android case studyFabrizio Giudci

- X1 -Le développement durable

Dominic Williams

11:00

12:00

- A2 -Integration of User Centered Design

in Agile Development of RIAJ. Borkenhagen, J. Desmazières

- I2 -Développement d'une application

iPhone pilotée par les testsEmmanuel Etasse, Van-Charles Tran

- J2 -La Tequila du développement Web

Nicolas Martignole

- X2 -Cloud Computing: anatomie et

pratiqueMarc-Elian Bégin

12:20

13:20

- A3 -Adoption de l'Agilité par les usages

Xavier Warzee

- I3 -Distribution d'applications iPhone

en Entreprise: Réalisation d'un AppStore interne

Géraud de Laval

- J3 -Vaadin - Rich Web Applications in

Server-side Java without Plug-ins or JavaScript

Joonas Lehtinen

- X3 -Les DVCS sont vos amis

Sébastien Douche

Pause repas (50 minutes)Pause repas (50 minutes)Pause repas (50 minutes)Pause repas (50 minutes)

14h10 Keynote de Regis Medina (30 minutes)Keynote de Regis Medina (30 minutes)Keynote de Regis Medina (30 minutes)Keynote de Regis Medina (30 minutes)

14h50

15h50

- A4 - Scrum, introduction et mise en

oeuvre avec iceScrumClaude Aubry

- I4 -Agile iOS Development

Jérôme Layat, Alexander Osterwalder

- J4 -JAX-RS and Java EE 6

Paul Sandoz

- X4 -IT Design & Ergonomy

Pascal Petit, Aude Lussigny

16h10

17h10

- A5 -Agilité : 10 ans déjà

Thierry Cros

- I5 -Optimizing iOS applications

Marc-Antoine Scheurer

- J5 -Ecrivez et automatisez vos tests

fonctionnels avec jBehaveXavier Bourguignon

- X5 -NoSQL : Enfin de la biodiversité

dans l'écosystème des BDOlivier Mallassi

17h30

18h30

- A6 -Lean engineering

Jean-Christophe Dubail

- I6 -iPhone et Agile, l'amour vache

Guillaume Duquesnay

- J6 -Let's make this test suite run faster

David Gageot

- X6 -The feel of Scala

Mario Fusco

Mot de la fin & tombolaMot de la fin & tombolaMot de la fin & tombolaMot de la fin & tombola

Programme de la Conférence

www.soft-shake.ch

Page 3: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Joonas Lehtinen, PhDIT Mill - CEO

[email protected]

Rich Web Applications in Server-side Java without

Plug-ins or JavaScript

Sunday, March 7, 2010

Page 4: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

?Sunday, March 7, 2010

Page 5: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Sunday, March 7, 2010

Page 6: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Vaadin is a UI framework

for desktop-like web apps

Sunday, March 7, 2010

Page 7: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

New configs, taglibs and syntax!?!

JavaScript,DOM, Applet,plugins?

No! This is Java. Nothing else.

Sunday, March 7, 2010

Page 8: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

htmljava

Sunday, March 7, 2010

Page 9: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

healthcare portal, 100 kloc of perl, .. web 1.0, netscape, ie5, ie6, ...

1998

Sunday, March 7, 2010

Page 10: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

healthcare portal, 100 kloc of perl, .. web 1.0, netscape, ie5, ie6, ... object oriented design, desktop, Java, U and I ...thinking of

Sunday, March 7, 2010

Page 11: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

object oriented design, desktop, Java, U and I ...thinking of

Sunday, March 7, 2010

Page 12: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

object oriented design, desktop, Java, U and I ... desktop programming paradigm for web! found

Sunday, March 7, 2010

Page 13: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

desktop programming paradigm for web! found millstone ajax google web toolkit re-released as

2000

2002

2005

2008

Sunday, March 7, 2010

Page 14: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

millstone ajax goolge web toolkit re-released as

2009

Sunday, March 7, 2010

Page 15: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

is there a ?

Sunday, March 7, 2010

Page 16: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

ApacheLicense

Sunday, March 7, 2010

Page 17: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Discussion

VaadinBig picture, Extending, Getting started

Server-side RIAWhat is it? Pros & cons?

In practiceCoding a Vaadin application step-by-step

Contents

Sunday, March 7, 2010

Page 18: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Server-side RIA

Sunday, March 7, 2010

Page 19: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

?Rich Internet Application

Sunday, March 7, 2010

Page 20: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

an application thatmakes developers rich

Sunday, March 7, 2010

Page 21: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

if they bill by hour

Sunday, March 7, 2010

Page 22: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Architecture

Sunday, March 7, 2010

Page 23: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

“Web 1.0”

DOM

Client Server

ViewHTML Page

over HttpResponse

Controller

Model

Parameters overHttpRequest

DB2

3

4

5

1

Sunday, March 7, 2010

Page 24: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

client-side ria

fat client

Sunday, March 7, 2010

Page 25: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Client-side RIA

DOM

Client Server

View

Controller

Model

DB2

3

4

5

1

Requested datato view as

XML / JSON

Changes to modelencoded as parameters

Sunday, March 7, 2010

Page 26: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

programming web is

not easy

Sunday, March 7, 2010

Page 27: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

different featuresin different browsers

Sunday, March 7, 2010

Page 28: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

different performancein different browsers

Sunday, March 7, 2010

Page 29: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

different bugsin different browsers

Sunday, March 7, 2010

Page 30: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Google Web Toolkit

Sunday, March 7, 2010

Page 31: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Java toJavaScriptCompiler

Subset of

java.lang, java.util

Widgetset

Your Application UI

IE6

IE7

Firefox

Safari

Sunday, March 7, 2010

Page 32: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

simpler• Java only• forget the web

Sunday, March 7, 2010

Page 33: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

cost-effective stop debugging JavaScript spaghetti

Sunday, March 7, 2010

Page 34: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

modular extensible♲

Sunday, March 7, 2010

Page 35: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Building wonderful apps doesn’t require writing fat web clients.

Sunday, March 7, 2010

Page 36: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

server-side ria

thin client

Sunday, March 7, 2010

Page 37: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Server-side RIA

DOM

Client Server

ViewHTML Pageover HttpResponse

Controller

Model

Parameters overHttpRequest

DB4

5

6

2

Term

inalAdapter

Term

inalAdapter

Automated bythe RIA framework

3

7

1

9

8

Sunday, March 7, 2010

Page 38: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Server-side RIA

DOM

Client Server

ViewHTML Pageover HttpResponse

Controller

Model

Parameters overHttpRequest

DB4

5

6

2

Term

inalAdapter

Term

inalAdapter

Automated bythe RIA framework

3

7

1

9

8

Handled by the framework

Sunday, March 7, 2010

Page 39: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Java

modularextensible

cost-effectiveno JavaScript debugging

simplerforget the web

the benefits of Java

♲Sunday, March 7, 2010

Page 40: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

even simpler• forget the client-side • synchronous• server resources

Sunday, March 7, 2010

Page 41: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

more flexible• all Java tools and libraries• any JVM language

Sunday, March 7, 2010

Page 42: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

more secure• code stays in server• less web services

Sunday, March 7, 2010

Page 43: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

not as scalablemore processing kept on server

Sunday, March 7, 2010

Page 44: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

no offline modeserver is always required

Sunday, March 7, 2010

Page 45: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

In practice

Sunday, March 7, 2010

Page 46: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Seeing is believing

© National Geographic Channel 2010

Sunday, March 7, 2010

Page 47: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

What can it do in 20 minutes?

Sunday, March 7, 2010

Page 48: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Sunday, March 7, 2010

Page 49: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Sunday, March 7, 2010

Page 50: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Demo as videohttp://www.youtube.com/watch?v=u-a3VQF90kw

Sunday, March 7, 2010

Page 51: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Vaadin

Sunday, March 7, 2010

Page 52: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

all benefits of• server-side ria• gwt

Sunday, March 7, 2010

Page 53: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

ui components

Sunday, March 7, 2010

Page 54: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Sunday, March 7, 2010

Page 55: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Sunday, March 7, 2010

Page 56: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Sunday, March 7, 2010

Page 57: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Vaadin UI component architecture

“UI Component”• Button, Table, Tree, ...• Server-side data• Full Java API

Java

• Google Web Toolkit

“Widget”• Client-side peer for

the component• Runs on JavaScript

HTTP(S)

Java

• Compiled with JDK

Sunday, March 7, 2010

Page 58: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

thanks to GWT, creating new ui components is really easy

Sunday, March 7, 2010

Page 59: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

directory

Sunday, March 7, 2010

Page 60: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

channel fordistributingVaadin add-ons

Sunday, March 7, 2010

Page 61: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

ui components, data sources,

themes, tools, ...

Sunday, March 7, 2010

Page 62: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Sunday, March 7, 2010

Page 63: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Sunday, March 7, 2010

Page 64: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Sunday, March 7, 2010

Page 65: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Sunday, March 7, 2010

Page 66: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Sunday, March 7, 2010

Page 67: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Vaadin Directoryopen to public by the end of this month

Sunday, March 7, 2010

Page 68: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

EclipseMaven

Netbeans

Sunday, March 7, 2010

Page 69: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

ServletPortlet

GAE

Sunday, March 7, 2010

Page 70: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

gettingstarted

Sunday, March 7, 2010

Page 71: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Sunday, March 7, 2010

Page 72: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Book ofVaadin

Free as

PDFSunday, March 7, 2010

Page 73: soft-shake.ch - Vaadin - Rich Web Applications in Server-side Java without Plug-ins or JavaScript

By Marko Grönroos

ABOUT VAADIN

ww

w.d

zone

.co

m

G

et M

ore

Ref

card

z! V

isit

ref

card

z.co

m

#85

Getting Started with VaadinCONTENTS INCLUDE:

About VaadinCreating An ApplicationComponents Layout ComponentsThemesData Binding and more...

Vaadin is a server-side Ajax web application development framework that allows you to build web applications just like with traditional desktop frameworks, such as AWT or Swing. An application is built from user interface components contained hierarchically in layout components.

In the server-driven model, the application code runs on a server, while the actual user interaction is handled by a client-side engine running in the browser. The client-server communications and any client-side technologies, such as HTML and JavaScript, are invisible to the developer. As the client-side engine runs as JavaScript in the browser, there is no need to install plug-ins. Vaadin is released under the Apache License 2.0.

Figure 1: Vaadin Client-Server Architecture

If the built-in selection of components is not enough, you can develop new components with the Google Web Toolkit (GWT)

Figure 2: Architecture for Vaadin Applications

Hot Tip

You can get a reference to the application object from any component attached to the application with

Event ListenersIn the event-driven model, user interaction with user interface components triggers server-side events, which you can handle

Web BrowserClient-Side Engine

JavaWeb Server

VaadinUIComponents

YourJavaApplication

WebService

EJB

DB

Servlet Container

UserApplication

EventListener

DataModel

ApplicationThemes

ApplicationResources

DefaultTheme

FileResources

ExternalResources

Database

DataBinding

Inherits Events Changes

AJAX Requests

Inherits

UIComponent

JavaServlet

ApplicationClass

Web BrowserClient-Side Engine

brought to you by...

Sunday, March 7, 2010