PLAY !
Premiers pas 
par l'exemple
Rosine Tchokonté
Stanislas Zarka
2
Plan

Fondamentaux

Développement

Fonctionnalités avancées
3
Fondamentaux
4
Fondamentaux
Etat de l'art
Qu'est-ce que Play ?
Pourquoi utiliser Play ?
5
Etat de l'art
6
Qu'est-ce que Play ?
2007 : Création par Guillaume Bort
But : création facilitée des
applications web
Langage : Java ou ...
7
Qu'est-ce que Play ?
2007 : Création par Guillaume Bort
But : création facilitée des
applications web
Langage : Java ou ...
8
Pourquoi utiliser Play ?
Architecture MVC
Stateless
Moins de configuration
Prêt à l'emploi (Ready-to-use)
Remplacement à...
9
Développement
10
Découpage en couches
Play! et la persistance
Play! et les TUs
Développement
11
Découpage en couches (1/4)
12
app/models
structure de données
mode de persistance
Modèle
13
Découpage en couches (2/4)
14
app/views
rendu (visuel) de l'application et des
données du modèle
mécanisme de templating
Vue
15
Découpage en couches (3/4)
16
app/controllers
Toute méthode est une action
Point d'entrée de l'application invoqué
lors de chaque requête HTTP entran...
17
Découpage en couches (4/4)
18
conf/routes
Invoque le contrôleur et exécute l'action
correspondant à la requête HTTP
entrante
Peut rediriger vers une ...
19
JPA (Java Persistence API)
conf/application.conf: configuration de la
BD
@javax.persistence.Entity : annotation
permett...
20
play.Logger
ils se trouvent dans project/plugins.sbt
différents niveaux de logging :
- info
- debug
- warn
- error
- tr...
21
/test
play.test.UnitTest : tests unitaires
play test ou sbt test : pour lancer les
tests
play.test.FunctionalTest : tes...
22
Fonctionnalités avancées
23
Simple Build Tool (SBT)
Validation de formulaires
Authentification
Gestion du cache
Template Engine
Modules disponibles...
24
SBT : outil de build et de gestion des
dépendances
project/Build.scala
Utilisation du repository Ivy
Simple build tool
25
Utilisation du champ validation du contrôleur
public static void hello(String name) {
validation.required(name);
}
Vali...
26
Deadbolt 2 est un plugin
d'authentification qui comprend un
mécanisme de définition par
annotations des droits d'accès ...
27
play.Cache
Exemple de sauvegarde pour 30 min :
Object o = new Message();
Cache.set("message1", o, "30mn");
@Cached("hom...
28
Template engine (1/2)
$ : <h1>Message ${message.content}</h1>
@ : <a href="@{Authors.index()}">Back</a>
# : #{script 'j...
29
Template engine (2/2)
*{*** ***}* : *{**** Display the user name ****}*
%{}% :
<h1>Client ${author.name}</h1>
<ul>
%{ f...
30
Il en existe aussi bien en Scala qu'en
Java
Cf. :
www.playframework.com/.../Modules
Modules disponibles
31
Play dans le Web
32
Quelles limites pour Play ?
Quel avenir ?
Conclusion
33
http://www.playframework.com/documentation/2.1.1/Home
http://www.scala-sbt.org
https://github.com/schaloner/deadbolt-2
...
34
28/06/2013 TEST_Cliquez et modifiez le pied de page 34
Prochain SlideShare
Chargement dans…5
×

Play : Premiers pas par l'exemple le 120613

1 323 vues

Publié le

Play! est un framework orienté web. Conçu pour faciliter le travail du développeur, il lui permet de s'abstraire de tous les problèmes liés à l'intégration pour se concentrer sur l'essentiel : le code métier.
Lors de cette présentation Rosine Tchokonte et Stanislas Zarka vous feront découvrir, au travers d’un cas concret ce framework, qui fait parler de lui.

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 323
Sur SlideShare
0
Issues des intégrations
0
Intégrations
340
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Play : Premiers pas par l'exemple le 120613

  1. 1. PLAY ! Premiers pas  par l'exemple Rosine Tchokonté Stanislas Zarka
  2. 2. 2 Plan  Fondamentaux  Développement  Fonctionnalités avancées
  3. 3. 3 Fondamentaux
  4. 4. 4 Fondamentaux Etat de l'art Qu'est-ce que Play ? Pourquoi utiliser Play ?
  5. 5. 5 Etat de l'art
  6. 6. 6 Qu'est-ce que Play ? 2007 : Création par Guillaume Bort But : création facilitée des applications web Langage : Java ou Scala
  7. 7. 7 Qu'est-ce que Play ? 2007 : Création par Guillaume Bort But : création facilitée des applications web Langage : Java ou Scala
  8. 8. 8 Pourquoi utiliser Play ? Architecture MVC Stateless Moins de configuration Prêt à l'emploi (Ready-to-use) Remplacement à chaud du code Erreurs dans le browser
  9. 9. 9 Développement
  10. 10. 10 Découpage en couches Play! et la persistance Play! et les TUs Développement
  11. 11. 11 Découpage en couches (1/4)
  12. 12. 12 app/models structure de données mode de persistance Modèle
  13. 13. 13 Découpage en couches (2/4)
  14. 14. 14 app/views rendu (visuel) de l'application et des données du modèle mécanisme de templating Vue
  15. 15. 15 Découpage en couches (3/4)
  16. 16. 16 app/controllers Toute méthode est une action Point d'entrée de l'application invoqué lors de chaque requête HTTP entrante mise à jour du modèle Retourne une réponse HTTP Contrôleur
  17. 17. 17 Découpage en couches (4/4)
  18. 18. 18 conf/routes Invoque le contrôleur et exécute l'action correspondant à la requête HTTP entrante Peut rediriger vers une page d'erreur en cas de requête invalide Routeur
  19. 19. 19 JPA (Java Persistence API) conf/application.conf: configuration de la BD @javax.persistence.Entity : annotation permettant d'indiquer une classe persistante play.db.jpa.Model: permet que la classe puisse embarquer plusieurs méthodes Persistance des données
  20. 20. 20 play.Logger ils se trouvent dans project/plugins.sbt différents niveaux de logging : - info - debug - warn - error - trace Logging
  21. 21. 21 /test play.test.UnitTest : tests unitaires play test ou sbt test : pour lancer les tests play.test.FunctionalTest : tests fonctionnels Selenium: pour des tests automatisés Tests unitaires
  22. 22. 22 Fonctionnalités avancées
  23. 23. 23 Simple Build Tool (SBT) Validation de formulaires Authentification Gestion du cache Template Engine Modules disponibles Fonctionnalités avancées
  24. 24. 24 SBT : outil de build et de gestion des dépendances project/Build.scala Utilisation du repository Ivy Simple build tool
  25. 25. 25 Utilisation du champ validation du contrôleur public static void hello(String name) { validation.required(name); } Validation de formulaires Annotation sur les paramètres des méthodes public static void hello(@Required String name, @Required @Min(0) Integer age) {....} Annotation @Valid dans les POJO $PLAY_HOME/resources/messages => paramétrer les messages d'erreur
  26. 26. 26 Deadbolt 2 est un plugin d'authentification qui comprend un mécanisme de définition par annotations des droits d'accès à certaines méthodes de contrôleurs ou certaines parties de vues Exemples : http://deadbolt-2-java.herokuapp.com/ Authentification
  27. 27. 27 play.Cache Exemple de sauvegarde pour 30 min : Object o = new Message(); Cache.set("message1", o, "30mn"); @Cached("homePage") public static Result index() { return ok("Hello world"); } Gestion du cache
  28. 28. 28 Template engine (1/2) $ : <h1>Message ${message.content}</h1> @ : <a href="@{Authors.index()}">Back</a> # : #{script 'jquery.js' /} & : Dans conf/messages : authorName=The author name is %s Dans une vue : <h1>&{'authorName', author.name}</h1>
  29. 29. 29 Template engine (2/2) *{*** ***}* : *{**** Display the user name ****}* %{}% : <h1>Client ${author.name}</h1> <ul> %{ for(message in author.messages) { }% <li>${message}</li> %{ } }% </ul>
  30. 30. 30 Il en existe aussi bien en Scala qu'en Java Cf. : www.playframework.com/.../Modules Modules disponibles
  31. 31. 31 Play dans le Web
  32. 32. 32 Quelles limites pour Play ? Quel avenir ? Conclusion
  33. 33. 33 http://www.playframework.com/documentation/2.1.1/Home http://www.scala-sbt.org https://github.com/schaloner/deadbolt-2 http://www.playframework.com/documentation/2.0/ScalaTe mplates http://thecodersbreakfast.net/Play-Framework https://github.com/Stanislas-Zarka/PlayChat Références et documentation
  34. 34. 34 28/06/2013 TEST_Cliquez et modifiez le pied de page 34

×