Play : Premiers pas par l'exemple le 120613

1,171
-1

Published on

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.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,171
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

×