BarCamp « Et pourquoi pas JEE ? » 
Octobre 2012 @ Paris 
Patrick GUILLERM 
Architecte Java JEE @PALO IT
2 
Au programme 
Introduction 
JEE 6 
Seam 3 
JSF 
Conclusion
INTRODUCTION
4 
Introduction 
Patrick GUILLERM, Architecte Java JEE 
Backoffice de l’Assemblée des Chambres Françaises de Commerce et d...
5 
JEE 6
6 
JEE 6 
Java Entreprise Edition 
Ensemble de normes (JSR) 
Des API (javax.*) 
La majorité des technologies Web en JAVA. ...
7 
JEE 6 
Evolution entre JEE5 et JEE6 
Simplification des EJB 
Normalisation de l’injection des dépendances 
Davantage de...
8 
JEE 6 
Evolution entre JEE5 et JEE6
9 
JEE 6 
JPA 2 : les principales nouvelles normes 
Meilleure gestion des collections (@Element-Collection) 
Les Map (@Map...
10 
JEE 6 
Les nouveautés de JEE 6 : JPA 2
11 
JEE 6 
Les nouveautés de JEE 6 : JPA 2
12 
JEE 6 
Evolution entre JEE5 et JEE6 
Entity Manager Factory (jboss-javaee-6) 
EJB Container (Glassfish embedded). 
All...
13 
SEAM 3
14 
Seam 3 
Qu’est ce que Seam? 
Concurrent direct de Spring 
Conçu par le créateur d’Hibernate : Gavin King 
Unifier le m...
15 
Seam 3 
Les avantages 
Productivité 
Unification des briques applicatives 
Puissante gestion des formulaires 
De l’Aja...
16 
Seam 3 
Les principaux modules 
JBoss Weld : implémentation référence de la norme JSR-299 
Seam Persistence : JPA 2 
S...
17 
Seam 3 
Contexts and Dependency Injection 
Le simple fait d’avoir un fichier bean.xm dans le META-INF d’un jar permet ...
18 
Seam 3 
Contexts and Dependency Injection
19 
Seam 3 
Contexts and Dependency Injection
20 
Seam 3 
Les scopes 
@ApplicationScoped : actif durant toute la vie de 
l’application. 
@SessionScoped : actif durant l...
21 
Seam 3 
Que sont les événements ?
22 
Seam 3 
Que sont les événements ?
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...
24 
Seam 3 
JSR-303 : Bean validator 
Permet la validation par annotation 
Unification de la validation ( front et backend...
25 
Seam 3 
Restriction des vues
26 
Seam 3 
PrettyFaces : URL Rewriting
27 
Seam 3 
PrettyFaces : URL Rewriting
28 
JSF 2
29 
JSF 2 
Qu’est ce que c’est ? 
Framework de présentation orienté composants 
Un ensemble de composants pour gérer les v...
30 
JSF 2 
Cycle de vie
31 
JSF 2 
Page Description Language
32 
JSF 2 
Page Description Language
33 
JSF 2 
Page Description Language
34 
JSF 2 
Composants Composites
35 
JSF 2 
Composants Composites
36 
JSF 2 
Paramètres en GET 
http://localhost:8080/foobar/product.xhtml?productId=42 
L ’utilisation des PrettyFaces perm...
37 
JSF 2 
AJAX 
Le support de l’ajax est natif en JSF 2 mais moins puissant que l’utilisation de Richfaces 
ou de Primefa...
38 
JSF 2 
Les bibliothèques de composants 
Richfaces : Soutenu par JBoss, très utile pour l’Ajax et de la validation (JSR...
39 
JSF 2 
Richefaces
40 
JSF 2 
Richefaces
41 
JSF 2 
Richefaces
42 
JSF 2 
Richefaces
43 
JSF 2 
Richefaces
44 
JSF 2 
Primefaces
45 
JSF 2 
Primefaces
46 
JSF 2 
Primefaces
47 
JSF 2 
Primefaces
CONCLUSION
49 
Conclusion 
Liens utiles 
http://www.seamframework.org 
http://www.jboss.org/richfaces/demos 
http://www.primefaces.or...
50
Prochain SlideShare
Chargement dans…5
×

Et pourquoi pas JEE ?

692 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
692
Sur SlideShare
0
Issues des intégrations
0
Intégrations
9
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

×