GRENOBLE              Play framework (V1) :     simplicité et productivité au service du                développement WEB ...
Préambule > Sondage    Développeur Java ?    Qui connait Play Framework ?    Qui utilise Play Framework ?        V1 ? ...
Introduction    Framework WEB complet    Pour des développeurs pour des développeurs    Pour une approche + simple et +...
Installation & démarrage    Téléchargement play-1.2.5.zip :     http://downloads.typesafe.com/releases/play-1.2.4.zip   ...
Installation & démarragePlay Framework 1.2.5 - http://www.playframework.com/ - Xavier NOPRE – 12/02/2013
Structure    Répertoires :        config/  fichiers de configuration        app/          models/  classes pour les ...
Configuration    Répertoire "conf":        application.conf : configuration générale de lapplication :          Nom, mo...
Configuration > dépendances    Artefacts disponibles sur des repositories publiques :            conf/dependencies.yml   ...
Configuration > routage URLs    Définitions des routages entre URL et actions des     contrôleurs, et inversement     con...
Models    Play utilise Hibernate à travers JPA (Java Persistance Api)    Les objets sont annotés @Entity et dérivent de ...
Controllers    Traitent les requêtes    Dérivent de play.mvc.Controller    Méthodes statiques    Récupération automati...
Controllers > Exemplepublic class Clients extends Controller {      public static void list() {          List<Client> clie...
Vues    Templating Groovy        Variable : ${client.name}        Tags : #{script jquery.js /} ou #{list items:clients,...
Mais encore …    Gestion dID pour différents déploiements (dev, test,…)    Tests unitaires et fonctionnels    Gestion d...
MERCI    Xavier NOPRE :        Développeur Java & Web        Formation et accompagnement en ingénierie agile (tests uni...
Prochain SlideShare
Chargement dans…5
×

Play framework - Human Talks Grenoble - 12.02.2013

1 462 vues

Publié le

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 462
Sur SlideShare
0
Issues des intégrations
0
Intégrations
186
Actions
Partages
0
Téléchargements
13
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Play framework - Human Talks Grenoble - 12.02.2013

  1. 1. GRENOBLE Play framework (V1) : simplicité et productivité au service du développement WEB en Java Xavier NOPRE – 12/02/2013
  2. 2. Préambule > Sondage Développeur Java ? Qui connait Play Framework ? Qui utilise Play Framework ?  V1 ?  V2 ? Précision … Play Framework 1.2.5 - http://www.playframework.com/ - Xavier NOPRE – 12/02/2013
  3. 3. Introduction Framework WEB complet Pour des développeurs pour des développeurs Pour une approche + simple et + rapide (vs JEE ou Spring) Constitué de composants choisis (JPA, Hibernate, …) Architecture Model View Controller Rechargement à chaud en mode "dev" Présentation des erreurs "serveur" dans la page HTML (explication et extrait de code) Stateless & REST Basé sur des conventions  Productivité ! Play Framework 1.2.5 - http://www.playframework.com/ - Xavier NOPRE – 12/02/2013
  4. 4. Installation & démarrage Téléchargement play-1.2.5.zip : http://downloads.typesafe.com/releases/play-1.2.4.zip Extraction et ajout au PATH Création dune nouvelle application : > play new demo-human-talks Préparation pour Eclipse : > play eclipsify Exécution : > play run Accès : http://localhost:9000/  Principes, documentation local, API Play Framework 1.2.5 - http://www.playframework.com/ - Xavier NOPRE – 12/02/2013
  5. 5. Installation & démarragePlay Framework 1.2.5 - http://www.playframework.com/ - Xavier NOPRE – 12/02/2013
  6. 6. Structure Répertoires :  config/  fichiers de configuration  app/  models/  classes pour les modèles objet (mapping JPA)  controllers/  classes pour les contrôleurs  views/  fichier HTML de templating pour les vues  test/  tests unitaires et tests fonctionnels  public/  ressources statiques (images, CSS, Javascript) Play Framework 1.2.5 - http://www.playframework.com/ - Xavier NOPRE – 12/02/2013
  7. 7. Configuration Répertoire "conf":  application.conf : configuration générale de lapplication :  Nom, mode (dev / prod), langs  Serveur HTTP et sessions  Logs  Base de donnée : mémoire, fichier, MySQL, PostgreSQL, JDBC, …  JPA, memcached, proxy, mail, …  dependencies.yml  Dépendances (artefacts type Maven ou Ivy)  routes  Routages : URL  controller.action  messages  Internationalisation i18n (multi-langue) Play Framework 1.2.5 - http://www.playframework.com/ - Xavier NOPRE – 12/02/2013
  8. 8. Configuration > dépendances Artefacts disponibles sur des repositories publiques : conf/dependencies.yml # Application dependencies require: - play - play -> crud - play -> secure - org.apache.commons -> commons-lang3 3.1 - org.mockito -> mockito-all 1.9.5 - org.easytesting -> fest-assert 1.4 Mise à jour des dépendances : > play dependencies Play Framework 1.2.5 - http://www.playframework.com/ - Xavier NOPRE – 12/02/2013
  9. 9. Configuration > routage URLs Définitions des routages entre URL et actions des contrôleurs, et inversement conf/routes GET / Application.index GET /public/ staticDir:public * /{controller}/{action} {controller}.{action} # Backbone GET /bb/projects BBProjects.getProjects GET /bb/project/{id} BBProjects.getProject POST /bb/project BBProjects.createProject PUT /bb/project/{id} BBProjects.updateProject DELETE /bb/project/{id} BBProjects.deleteProject POST /bb/project/public/{id}/{isPublic} BBProjects.postPublicProject Utilisation dans une vue pour faire un lien : <a href="@{Clients.show(client.id)}">Show</a> Play Framework 1.2.5 - http://www.playframework.com/ - Xavier NOPRE – 12/02/2013
  10. 10. Models Play utilise Hibernate à travers JPA (Java Persistance Api) Les objets sont annotés @Entity et dérivent de Model Model fournit des méthodes utilitaires statiques :  post.save(), post.delete(), Post.findAll(), Post.findById(5L), Post.find("byTitle", "My first post").fetch() … @Entity public class Post extends Model { public String title; public String content; public Date postDate; @ManyToOne public Author author; @OneToMany public List<Comment> comments; } Play Framework 1.2.5 - http://www.playframework.com/ - Xavier NOPRE – 12/02/2013
  11. 11. Controllers Traitent les requêtes Dérivent de play.mvc.Controller Méthodes statiques Récupération automatique des paramètres de requête Binding automatique de ces paramètres en objets, selon la signature de la méthode  + Dates selon différents formats  + Uploads POST "multipart/form-data" de fichiers  File Actions :  Rendu : render(), renderJSON(), renderXML(), renderBinary()  Autre : redirect() ou appel dune autre méthode (chainage) Play Framework 1.2.5 - http://www.playframework.com/ - Xavier NOPRE – 12/02/2013
  12. 12. Controllers > Exemplepublic class Clients extends Controller { public static void list() { List<Client> clients = Client.findAll(); render(clients);  app/views/Clients/list.html } public static void show(Long id) { Client client = Client.findById(id); renderTemplate("Clients/showClient.html", client); }  app/views/Clients/showClient.html public static void create(String name) { Client client = new Client(name); client.save(); show(client.id);  chainage } public static void getUnreadMessages() {} List<Message> unreadMessages = MessagesBox.unreadMessages(); renderJSON(unreadMessages); } Play Framework 1.2.5 - http://www.playframework.com/ - Xavier NOPRE – 12/02/2013
  13. 13. Vues Templating Groovy  Variable : ${client.name}  Tags : #{script jquery.js /} ou #{list items:clients, as:client }  Tags personnalisés dans app/views/tags  Actions : <a href="@{Clients.show(client.id)}">Show</a>  Textes internationalisés : &{clientName, client.name}  Script Java : %{ fullName = "Name : "+client.getName(); } Système de "decorators" (= template parent, héritage)  Tags #{extends main.html /} et #{doLayout /} Play Framework 1.2.5 - http://www.playframework.com/ - Xavier NOPRE – 12/02/2013
  14. 14. Mais encore … Gestion dID pour différents déploiements (dev, test,…) Tests unitaires et fonctionnels Gestion de modules  Personnels  Public, grand nombre sur http://www.playframework.com/modules  Notamment modules Secure, CRUD, … Déploiement  En "natif" avec le moteur Play  WAR déployé sur serveur dapplication (Tomcat, …) Macro (tags) pour le templating des vues … Play Framework 1.2.5 - http://www.playframework.com/ - Xavier NOPRE – 12/02/2013
  15. 15. MERCI Xavier NOPRE :  Développeur Java & Web  Formation et accompagnement en ingénierie agile (tests unitaires, TDD, intégration continue, industrialisation Maven, etc…) et technos Java-WEB @xnopre xnopre.blogspot.com Play Framework 1.2.5 - http://www.playframework.com/ - Xavier NOPRE – 12/02/2013

×