Nicolas Martignole
Votre application Java utilise une base de données, vous travaillez sur un projet de plusieurs mois, la dernière fois que vous avez essayé de coder une page cela vous a demandé 2 jours... Vous voulez tester un nouveau cocktail détonant pour le développement Web ?
Venez découvrir Play! Framework, un framework Java open-source qui permet de travailler efficacement et qui partage beaucoup de ses valeurs avec la nouvelle philosophie de Java EE 6.
2. 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 study
Fabrizio Giudci
- X1 -
Le développement durable
Dominic Williams
11:00
12:00
- A2 -
Integration of User Centered Design
in Agile Development of RIA
J. Borkenhagen, J. Desmazières
- I2 -
Développement d'une application
iPhone pilotée par les tests
Emmanuel Etasse, Van-Charles Tran
- J2 -
La Tequila du développement Web
Nicolas Martignole
- X2 -
Cloud Computing: anatomie et
pratique
Marc-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 iceScrum
Claude 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 jBehave
Xavier Bourguignon
- X5 -
NoSQL : Enfin de la biodiversité
dans l'écosystème des BD
Olivier 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
3. La Téquila du développement Web
Nicolas Martignole
Play! Framework
dimanche 24 octobre 2010
4. • Nicolas Martignole @nmartignole
• Freelance / Technical Team Leader
• Blog Le Touilleur Express
• Fondateur du site eXpress-Board.fr
Speaker
dimanche 24 octobre 2010
6. What you will learn
• Play! Framework is an open-source Web
Framework written in Java launched in 2008
dimanche 24 octobre 2010
7. What you will learn
• Play! Framework is an open-source Web
Framework written in Java launched in 2008
• Stateless server-side architecture
dimanche 24 octobre 2010
8. What you will learn
• Play! Framework is an open-source Web
Framework written in Java launched in 2008
• Stateless server-side architecture
• Not based on Java Servlet API
dimanche 24 octobre 2010
9. What you will learn
• Play! Framework is an open-source Web
Framework written in Java launched in 2008
• Stateless server-side architecture
• Not based on Java Servlet API
• No client-side technology
dimanche 24 octobre 2010
10. What you will learn
• Play! Framework is an open-source Web
Framework written in Java launched in 2008
• Stateless server-side architecture
• Not based on Java Servlet API
• No client-side technology
• A full-stack framework : from compilation to
deployment
dimanche 24 octobre 2010
11. What you will learn
• Play! Framework is an open-source Web
Framework written in Java launched in 2008
• Stateless server-side architecture
• Not based on Java Servlet API
• No client-side technology
• A full-stack framework : from compilation to
deployment
• Close to Rails but based on Java
dimanche 24 octobre 2010
12. What you will learn
• Play! Framework is an open-source Web
Framework written in Java launched in 2008
• Stateless server-side architecture
• Not based on Java Servlet API
• No client-side technology
• A full-stack framework : from compilation to
deployment
• Close to Rails but based on Java
• and it’s fun (really)
dimanche 24 octobre 2010
13. What you will learn
• Play! Framework is an open-source Web
Framework written in Java launched in 2008
• Stateless server-side architecture
• Not based on Java Servlet API
• No client-side technology
• A full-stack framework : from compilation to
deployment
• Close to Rails but based on Java
• and it’s fun (really)
dimanche 24 octobre 2010
21. ➡ Simple, efficient
➡ Play! is a full stack
framework
http://www.flickr.com/photos/julia_manzerova/932055526/
Values and background
dimanche 24 octobre 2010
22. ➡ Simple, efficient
➡ Play! is a full stack
framework
➡ Shared philosophy from
Rails, Django
http://www.flickr.com/photos/julia_manzerova/932055526/
Values and background
dimanche 24 octobre 2010
23. ➡ Simple, efficient
➡ Play! is a full stack
framework
➡ Shared philosophy from
Rails, Django
➡ A Web framework (not a
java framework)
http://www.flickr.com/photos/julia_manzerova/932055526/
Values and background
dimanche 24 octobre 2010
24. Much of the Java Complexity
is cultural
and not imposed
dimanche 24 octobre 2010
36. DB
• One Thread to take your order very quickly
• A fixed pool of Worker to process it
• A last Thread to deliver the response
Fixed pool of workers
Play! Framework
dimanche 24 octobre 2010
37. DB
• One Thread to take your order very quickly
• A fixed pool of Worker to process it
• A last Thread to deliver the response
Fixed pool of workers
Play! Framework
dimanche 24 octobre 2010
38. DB
• One Thread to take your order very quickly
• A fixed pool of Worker to process it
• A last Thread to deliver the response
Fixed pool of workers
Play! Framework
dimanche 24 octobre 2010
39. DB
• One Thread to take your order very quickly
• A fixed pool of Worker to process it
• A last Thread to deliver the response
Fixed pool of workers
Play! Framework
dimanche 24 octobre 2010
40. DB
• One Thread to take your order very quickly
• A fixed pool of Worker to process it
• A last Thread to deliver the response
Fixed pool of workers
Play! Framework
dimanche 24 octobre 2010
41. DB
• One Thread to take your order very quickly
• A fixed pool of Worker to process it
• A last Thread to deliver the response
Fixed pool of workers
Play! Framework
dimanche 24 octobre 2010
42. DB
• One Thread to take your order very quickly
• A fixed pool of Worker to process it
• A last Thread to deliver the response
Fixed pool of workers
Play! Framework
dimanche 24 octobre 2010
43. DB
• One Thread to take your order very quickly
• A fixed pool of Worker to process it
• A last Thread to deliver the response
Fixed pool of workers
Play! Framework
dimanche 24 octobre 2010
44. Disclaimer :
A bit of FUD
Fear,uncertainty and doubt
dimanche 24 octobre 2010
49. Play! is a web framework
dimanche 24 octobre 2010
50. The application can be RESTful.
Play! is a web framework
dimanche 24 octobre 2010
51. The application can be RESTful.
URL are important.
Play! is a web framework
dimanche 24 octobre 2010
52. The application can be RESTful.
URL are important.
Fully realize the meaning of HTTP as a
protocol not just a transport protocol layer.
Play! is a web framework
dimanche 24 octobre 2010
53. The application can be RESTful.
URL are important.
Fully realize the meaning of HTTP as a
protocol not just a transport protocol layer.
Take care of side effects & idempotence
Play! is a web framework
dimanche 24 octobre 2010
54. The application can be RESTful.
URL are important.
Fully realize the meaning of HTTP as a
protocol not just a transport protocol layer.
Take care of side effects & idempotence
The navigator holds the session
Play! is a web framework
dimanche 24 octobre 2010
56. Application
Play! Framework ServerWeb Browser
Play! Framework Server 2
Application
DBState
Crypted signed cookie
Where is the session ?
dimanche 24 octobre 2010
57. Application
Play! Framework ServerWeb Browser
Play! Framework Server 2
Application
DBState
Crypted signed cookie
Where is the session ?
dimanche 24 octobre 2010
58. Application
Play! Framework ServerWeb Browser
Play! Framework Server 2
Application
DBState
Crypted signed cookie
Where is the session ?
dimanche 24 octobre 2010
59. Application
Play! Framework ServerWeb Browser
Play! Framework Server 2
Application
DBState
Crypted signed cookie
Where is the session ?
dimanche 24 octobre 2010
60. Application
Play! Framework ServerWeb Browser
Play! Framework Server 2
Application
DBState
Crypted signed cookie
Where is the session ?
dimanche 24 octobre 2010
61. Application
Play! Framework ServerWeb Browser
Play! Framework Server 2
Application
DBState
Crypted signed cookie
Where is the session ?
dimanche 24 octobre 2010
65. • In dev mode, it compiles your java
code (no need for Maven nor Ant)
Copyright(c) mipan - Fotolia.com
Full stack ?
dimanche 24 octobre 2010
66. • In dev mode, it compiles your java
code (no need for Maven nor Ant)
• Embedded Server based on
Apache Mina or JBoss Netty
Copyright(c) mipan - Fotolia.com
Full stack ?
dimanche 24 octobre 2010
67. • In dev mode, it compiles your java
code (no need for Maven nor Ant)
• Embedded Server based on
Apache Mina or JBoss Netty
• Deployment as a WAR
Copyright(c) mipan - Fotolia.com
Full stack ?
dimanche 24 octobre 2010
68. • In dev mode, it compiles your java
code (no need for Maven nor Ant)
• Embedded Server based on
Apache Mina or JBoss Netty
• Deployment as a WAR
• No need for any other JARs
Copyright(c) mipan - Fotolia.com
Full stack ?
dimanche 24 octobre 2010
69. • Apache Tomcat
• Spring Webflow
• Spring Faces
• Hibernate
• Junit
• JSF and a library such as
Rich Faces
• Selenium
• Maven
Meet the Java Web projet
dimanche 24 octobre 2010
70. • The super-heros pattern
http://www.flickr.com/photos/aloha75/4571410233/sizes/l/in/photostream/
Me as a consultant
dimanche 24 octobre 2010
71. • The super-heros pattern
http://www.flickr.com/photos/aloha75/4571410233/sizes/l/in/photostream/
Me as a consultant
dimanche 24 octobre 2010
74. Play is a development platform
dimanche 24 octobre 2010
75. • Fast incremental development
Play is a development platform
dimanche 24 octobre 2010
76. • Fast incremental development
• Production server
Play is a development platform
dimanche 24 octobre 2010
77. • Fast incremental development
• Production server
• MVC stack with a configurable template engine
Play is a development platform
dimanche 24 octobre 2010
78. • Fast incremental development
• Production server
• MVC stack with a configurable template engine
• Persistence engine (JPA/Hibernate)
Play is a development platform
dimanche 24 octobre 2010
79. • Fast incremental development
• Production server
• MVC stack with a configurable template engine
• Persistence engine (JPA/Hibernate)
• Tests Runners (Junit, Selenium)
Play is a development platform
dimanche 24 octobre 2010
80. • Fast incremental development
• Production server
• MVC stack with a configurable template engine
• Persistence engine (JPA/Hibernate)
• Tests Runners (Junit, Selenium)
• Asynchronous tasks
Play is a development platform
dimanche 24 octobre 2010
81. • Fast incremental development
• Production server
• MVC stack with a configurable template engine
• Persistence engine (JPA/Hibernate)
• Tests Runners (Junit, Selenium)
• Asynchronous tasks
• Email
Play is a development platform
dimanche 24 octobre 2010
82. • Fast incremental development
• Production server
• MVC stack with a configurable template engine
• Persistence engine (JPA/Hibernate)
• Tests Runners (Junit, Selenium)
• Asynchronous tasks
• Email
• Scala
Play is a development platform
dimanche 24 octobre 2010
83. • Fast incremental development
• Production server
• MVC stack with a configurable template engine
• Persistence engine (JPA/Hibernate)
• Tests Runners (Junit, Selenium)
• Asynchronous tasks
• Email
• Scala
• Mobile development
Play is a development platform
dimanche 24 octobre 2010
85. • You think of an idea
Compile, reload, enjoy
dimanche 24 octobre 2010
86. • You think of an idea
• You write-it in your IDE
Compile, reload, enjoy
dimanche 24 octobre 2010
87. • You think of an idea
• You write-it in your IDE
• Reload browser
Compile, reload, enjoy
dimanche 24 octobre 2010
88. • You think of an idea
• You write-it in your IDE
• Reload browser
• There is no session : you can perform progressive
creation of Web application in no time
Compile, reload, enjoy
dimanche 24 octobre 2010
89. • Displayed in your web browser
Error pages
Statically check (yes it’s Java)
dimanche 24 octobre 2010
90. • Displayed in your web browser
Error pages
Statically check (yes it’s Java)
dimanche 24 octobre 2010
96. • Cloud deployment on playapps.net
One more thing
dimanche 24 octobre 2010
97. • Cloud deployment on playapps.net
• Modules for NoSQL, revert DB, Scaffold,
Excel, Senia, MongoDB, Scalate, PDF, search,
etc.
One more thing
dimanche 24 octobre 2010
98. • Cloud deployment on playapps.net
• Modules for NoSQL, revert DB, Scaffold,
Excel, Senia, MongoDB, Scalate, PDF, search,
etc.
• Hosted on GitHub
One more thing
dimanche 24 octobre 2010
99. • Cloud deployment on playapps.net
• Modules for NoSQL, revert DB, Scaffold,
Excel, Senia, MongoDB, Scalate, PDF, search,
etc.
• Hosted on GitHub
• Easy to learn
One more thing
dimanche 24 octobre 2010
100. • Cloud deployment on playapps.net
• Modules for NoSQL, revert DB, Scaffold,
Excel, Senia, MongoDB, Scalate, PDF, search,
etc.
• Hosted on GitHub
• Easy to learn
• .............................. and it’s Java
One more thing
dimanche 24 octobre 2010
102. Demo
• A simple Todo list application
• Create an application
• Add simple HTML
• Add bootstrap
• Create a todo
• Show a specific
dimanche 24 octobre 2010
103. Demo 2
• GeekEvent is a Java User Group event
organizer
• Code source hosted on GitHub
dimanche 24 octobre 2010