Et pourquoi pas JEE ?

757 vues

Publié le

JEE et JSF : des technologies qui ont effrayé et fait souffrir bon nombre de développeurs ! Elles auront peut être laissé à certains d’entre vous un goût amer mais ont énormément évolué ces dernières années pour finalement devenir légères et productives. Découvrons en quoi ces solutions peuvent vous aider dans le cadre de vos différents projets et ouvrons un œil neuf sur ces technologies d’avenir.

Programme:

- JEE 6 : historique, nouveautés, testabilité.

- JBoss Seam 3 – Framework de contrôle applicatif : context and dependancies injections, événements, Bean validator, restriction des vues.

- JSF 2 – Framework de présentation graphique : page description language, composants composite, PrettyFaces, Ajax 4 JSF, RichFaces, PrimeFaces.

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

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

Aucune remarque pour cette diapositive

Et pourquoi pas JEE ?

  1. 1. BarCamp « Et pourquoi pas JEE ? » Octobre 2012 @ Paris Patrick GUILLERM Architecte Java JEE @PALO IT
  2. 2. 2 Au programme Introduction JEE 6 Seam 3 JSF Conclusion
  3. 3. INTRODUCTION
  4. 4. 4 Introduction Patrick GUILLERM, Architecte Java JEE Backoffice de l’Assemblée des Chambres Françaises de Commerce et d’Industrie (Seam 2) Le Guichet Entreprises (JSF) HEC – K-HUB (Nuxeo, Seam 2) Intranet de Generali France (Nuxeo, Seam 2) CADA – Cabinet du 1er Ministre (Nuxeo, Seam 2, Selenium) You Testlt (JEE6, Seam 3, JSF 2). Quels objectifs pour ce BarCamp ? Casser les idées reçues sur JEE Exposer les avancées technologiques de cette norme Montrer qu’il existe autre chose que Spring Réconcilier certains d’entre vous avec les EJB et JSF Mettre en avant les avantages et inconvénients.
  5. 5. 5 JEE 6
  6. 6. 6 JEE 6 Java Entreprise Edition Ensemble de normes (JSR) Des API (javax.*) La majorité des technologies Web en JAVA. Que doit contenir un projet pour être un projet JEE ? Des EJB Un conteneur de SERVLET et un conteneur d’EJB. JEE historique
  7. 7. 7 JEE 6 Evolution entre JEE5 et JEE6 Simplification des EJB Normalisation de l’injection des dépendances Davantage de conventions Meilleure testabilité (Test unitaire, Arquillian) Possibilité d’être utilisé en JAVA SE Normalisation de la configuration de JPA Les implémentations de référence Normes mises obsolètes (Entity CMP 2.x, JAX-RCP, etc.). Principales nouvelles normes JSR-299 : CDI JSR-330 : @Inject JSR-303 : Bean Validator JSR-314 : Java Server Faces 2 JSR-317 : JPA 2 JSR-311 : JAX-RS 1.1 JSR-224 : JAX-WS 2.2 JSR-315 : SERVLET API 3 Etc.
  8. 8. 8 JEE 6 Evolution entre JEE5 et JEE6
  9. 9. 9 JEE 6 JPA 2 : les principales nouvelles normes Meilleure gestion des collections (@Element-Collection) Les Map (@MapKeyColumn) Suppression des liaisons orphelines (OneToMany et OneToOne) Criterias Lock pessimiste Order column (tri au moment de l’écriture) Des @Embedded dans des @Embedded Standardisation du fichier persistance.xml Séparation de la norme JPA et des EJB.
  10. 10. 10 JEE 6 Les nouveautés de JEE 6 : JPA 2
  11. 11. 11 JEE 6 Les nouveautés de JEE 6 : JPA 2
  12. 12. 12 JEE 6 Evolution entre JEE5 et JEE6 Entity Manager Factory (jboss-javaee-6) EJB Container (Glassfish embedded). Aller plus loin dans les tests Arquillian Selenium (attention aux ID HTML).
  13. 13. 13 SEAM 3
  14. 14. 14 Seam 3 Qu’est ce que Seam? Concurrent direct de Spring Conçu par le créateur d’Hibernate : Gavin King Unifier le monde JEE (JPA / EJB / JSF) Framework Stateful orienté Implémentation de référence de la norme CDI Acteurs majeurs de la norme JEE 6. Les cas d’utilisation Les back-offices : grâce à son orientation stateful Middleware : pour sa facilité d’intégration avec les standards JEE (JAX-WS, JAX-RS,JPA,JMS,JASS, etc.) Site à très haute disponibilité : grâce aux EJB et aux serveurs d’applications Site avec des interfaces web très riches grâce à son framework Ajax, les différents composants et au Page Description Language Site au domaine fonctionnel complexe : validation simplifiée, évènements Maintenabilité facilité : AoX, CoC et transparence Pour traiter il faut normaliser les évènements Sécurité des informations Pas de réponse simple au problème du périmètre des équipes supports/exploitations.
  15. 15. 15 Seam 3 Les avantages Productivité Unification des briques applicatives Puissante gestion des formulaires De l’Ajax sans la contrainte de l’écriture de code JavaScript Mécanisme de templating très puissant Framework orienté composants. Les inconvénients Peu de développeur connaissent ce framework en France Beaucoup de préjugés sur Java EE Il est nécessaire de comprendre ce que l’on fait Le calcul d’une page JSF est un peu plus long Peu de développeur savent concevoir des composants.
  16. 16. 16 Seam 3 Les principaux modules JBoss Weld : implémentation référence de la norme JSR-299 Seam Persistence : JPA 2 Seam Faces : JSF2 Seam Validation : extension pour la norme JSR-303 Seam Security : identification.
  17. 17. 17 Seam 3 Contexts and Dependency Injection Le simple fait d’avoir un fichier bean.xm dans le META-INF d’un jar permet d’ordonner à Weld d’ajouter les Web beans dans son contexte.
  18. 18. 18 Seam 3 Contexts and Dependency Injection
  19. 19. 19 Seam 3 Contexts and Dependency Injection
  20. 20. 20 Seam 3 Les scopes @ApplicationScoped : actif durant toute la vie de l’application. @SessionScoped : actif durant la session HTTP. @ConservationScoped : actif durant une conversation. @ViewScoped : actif tant que l’on est sur la même page. @RequestScoped : actif le temps d’une requête HTTP. @RenderScoped : actif uniquement durant le chargement d’une page. @FlashScoped : micro scope destiné aux notifications.
  21. 21. 21 Seam 3 Que sont les événements ?
  22. 22. 22 Seam 3 Que sont les événements ?
  23. 23. 23 Seam 3 Exemples d’événements existants @Before Avant le début du cycle de vie JSF @After Après le début du cycle de vie JSF @RestoreView A la phase ”RestoreView” @Initialized Quand l’application est initialisée @LoggedInEvent Lorsque l’utilisateur s’est identifié @PreLoggedOutEvent Déconnexion d’un utilisateur @DidActivate A l’activation d’une session @WillPassivate A passivation d’une session.
  24. 24. 24 Seam 3 JSR-303 : Bean validator Permet la validation par annotation Unification de la validation ( front et backend ) Diverses annotations préexistantes Possibilité de créer ses propres annotations pour la validation. Restriction des vues Création des rôles (Administrateur, contributeurs, etc.) Création de la validation des rôles Création du Page.java.
  25. 25. 25 Seam 3 Restriction des vues
  26. 26. 26 Seam 3 PrettyFaces : URL Rewriting
  27. 27. 27 Seam 3 PrettyFaces : URL Rewriting
  28. 28. 28 JSF 2
  29. 29. 29 JSF 2 Qu’est ce que c’est ? Framework de présentation orienté composants Un ensemble de composants pour gérer les vues Permet d’effectuer différents types de rendu (Email, RSS, PDF, ...) Du XHTML En opposition avec JSP (et JSTL) Une interaction transparente avec les Web beans Les composants et vues ont des états Des bibliothèques très riches en composants (Richfaces, Primefaces). Quoi de neuf dans JSF 2 ? Page Description Language (Facelets) Composants Composite simplifiés (axés sur de la convention) Une meilleure gestion des ressources De l’ajax en natif Gestion des paramètres GET Actions en GET Un énorme travail d’optimisation La normalisation des travaux de JBoss (Seam 2.x)
  30. 30. 30 JSF 2 Cycle de vie
  31. 31. 31 JSF 2 Page Description Language
  32. 32. 32 JSF 2 Page Description Language
  33. 33. 33 JSF 2 Page Description Language
  34. 34. 34 JSF 2 Composants Composites
  35. 35. 35 JSF 2 Composants Composites
  36. 36. 36 JSF 2 Paramètres en GET http://localhost:8080/foobar/product.xhtml?productId=42 L ’utilisation des PrettyFaces permet un contrôle affiné.
  37. 37. 37 JSF 2 AJAX Le support de l’ajax est natif en JSF 2 mais moins puissant que l’utilisation de Richfaces ou de Primefaces.
  38. 38. 38 JSF 2 Les bibliothèques de composants Richfaces : Soutenu par JBoss, très utile pour l’Ajax et de la validation (JSR-303). Primefaces : Léger, avec beaucoup de composants, et des diagrammes en HTML 5. Icefaces : Graphiquement riche mais gourmande en ressources. Apache MyFaces: Largement distancé par Richfaces et Primefaces. Richefaces
  39. 39. 39 JSF 2 Richefaces
  40. 40. 40 JSF 2 Richefaces
  41. 41. 41 JSF 2 Richefaces
  42. 42. 42 JSF 2 Richefaces
  43. 43. 43 JSF 2 Richefaces
  44. 44. 44 JSF 2 Primefaces
  45. 45. 45 JSF 2 Primefaces
  46. 46. 46 JSF 2 Primefaces
  47. 47. 47 JSF 2 Primefaces
  48. 48. CONCLUSION
  49. 49. 49 Conclusion Liens utiles http://www.seamframework.org http://www.jboss.org/richfaces/demos http://www.primefaces.org/showcase/ui/home.jsf Jug sur JEE 6 par Antonio Goncalves : http://www.parleys.com/#st=5&id=1754&sl=0 Jug sur Arqulian par Alexis Hassier : http://www.parleys.com/#st=5&id=3315&sl=0 http://www.youtestit.org http://palo-it.com/blog.
  50. 50. 50

×