Java Server
Faces
Beyond
Sommaire
●
Notion de Framework
●
JSF Présentation
●
JSF Avantages
●
JSF Inconvénients
●
Solutions
●
Perspectives
Notion de Framework
●
Les frameworks sont des structures
logicielles qui définissent des cadres
dans lesquels s’insèrent les objets et
concepts spécifiques à une application
●
En pratique, un framework est un
ensemble de classes et de mécanismes
associés à une architecture logicielle qui
fournissent un ou plusieurs services
techniques ou métiers aux applications
qui s'appuient dessus
●
Exemple : Framework MVC (Java)
Struts
Spring MVC
Tapestry
Grails
Vaadin
JSF
Java Server Faces
●
Java Server Faces (JSF) est le
framework standard de présentation
pour les applications web conçues avec
la plate-forme Java EE. Il est basé sur
un modèle orienté événement et sur
une architecture orientée composant.
Les composants JSF peuvent être
transcrits en HTML, XML, WML et autre
format en fonction de la cible grâce au
concept de Renderer. Dans une
application JSF, l’intégration de la
logique applicative consiste à assigner
l’écouteur approprié au composant qui
génère des événements
●
JSF Implémentation
Mojarra
Apache MyFaces
Avantages
●
Offre des composants standards, ainsi
que des librairies additionnelles mais
non-compatibles, pour accélérer le
développement de l'interface graphique
PrimeFaces
RichFaces
IceFaces
OmniFaces
Oracle ADF
●
Réutilisation des composants dans les
pages et possibilité de créer ses propres
composants graphiques
●
Modèle de programmation simple et qui
est basé sur les événements comme
pour la librairie graphique Swing.
●
Supporte nativement Ajax
Inconvénients
●
Problème de scalabilité car consommant
beaucoup de mémoire RAM
●
Séparation entre les développeurs
impossible du fait de sa non-modularité
●
Difficile d’intégrer un web designer dans
l’équipe et d'utiliser des librairies CSS
comme Bootstrap
●
Modèle Ajax compliqué et limité car ne
produisant pas du JSON
●
Difficulté pour créer des applications
web responsive, progressive et offline
●
Redémarrage du serveur après chaque
modification d'un Managed Bean. Ce qui
est une perte de temps énorme pour
une livraison rapide du projet
Solutions
●
Développement d'un RAD framework
moderne, modulaire au dessus de Struts
●
Séparation totale entre les développeurs
via le concept de modules indépendants
●
Intégration facile d'un web designer et
des librairies CSS comme Bootstrap via
le concept de template réutilisable
●
Modèle Ajax produisant du JSON et
utilisable avec des librairies comme
jQuery et Vue.js pour modifier le DOM
●
Facilité pour créer des applications web
responsive, progressive et offline
●
Intégration avec le langage Groovy pour
éviter le redémarrage du serveur lors de
la modification d'une Action
Perspectives
●
Réduction des coûts et gain de temps
pour une livraison rapide du projet
●
Développement rapide et modulaire
d'applications SaaS web et mobile
●
Création de templates front-end et
back-end réutilisables
●
Intégration avec l'écosystème de
librairies CSS et les modules JavaScript
●
Possibilité d’utiliser les web components,
le modèle standard de composant du
langage HTML
●
Système dynamique avec une
intégration des librairies Java, comme
celles de la fondation Apache (Apache
Commons FileUpload, Apache POI..)
Merci pour votre
attention

Java Server Faces - Beyond

  • 1.
  • 2.
    Sommaire ● Notion de Framework ● JSFPrésentation ● JSF Avantages ● JSF Inconvénients ● Solutions ● Perspectives
  • 3.
    Notion de Framework ● Lesframeworks sont des structures logicielles qui définissent des cadres dans lesquels s’insèrent les objets et concepts spécifiques à une application ● En pratique, un framework est un ensemble de classes et de mécanismes associés à une architecture logicielle qui fournissent un ou plusieurs services techniques ou métiers aux applications qui s'appuient dessus ● Exemple : Framework MVC (Java) Struts Spring MVC Tapestry Grails Vaadin JSF
  • 4.
    Java Server Faces ● JavaServer Faces (JSF) est le framework standard de présentation pour les applications web conçues avec la plate-forme Java EE. Il est basé sur un modèle orienté événement et sur une architecture orientée composant. Les composants JSF peuvent être transcrits en HTML, XML, WML et autre format en fonction de la cible grâce au concept de Renderer. Dans une application JSF, l’intégration de la logique applicative consiste à assigner l’écouteur approprié au composant qui génère des événements ● JSF Implémentation Mojarra Apache MyFaces
  • 5.
    Avantages ● Offre des composantsstandards, ainsi que des librairies additionnelles mais non-compatibles, pour accélérer le développement de l'interface graphique PrimeFaces RichFaces IceFaces OmniFaces Oracle ADF ● Réutilisation des composants dans les pages et possibilité de créer ses propres composants graphiques ● Modèle de programmation simple et qui est basé sur les événements comme pour la librairie graphique Swing. ● Supporte nativement Ajax
  • 6.
    Inconvénients ● Problème de scalabilitécar consommant beaucoup de mémoire RAM ● Séparation entre les développeurs impossible du fait de sa non-modularité ● Difficile d’intégrer un web designer dans l’équipe et d'utiliser des librairies CSS comme Bootstrap ● Modèle Ajax compliqué et limité car ne produisant pas du JSON ● Difficulté pour créer des applications web responsive, progressive et offline ● Redémarrage du serveur après chaque modification d'un Managed Bean. Ce qui est une perte de temps énorme pour une livraison rapide du projet
  • 7.
    Solutions ● Développement d'un RADframework moderne, modulaire au dessus de Struts ● Séparation totale entre les développeurs via le concept de modules indépendants ● Intégration facile d'un web designer et des librairies CSS comme Bootstrap via le concept de template réutilisable ● Modèle Ajax produisant du JSON et utilisable avec des librairies comme jQuery et Vue.js pour modifier le DOM ● Facilité pour créer des applications web responsive, progressive et offline ● Intégration avec le langage Groovy pour éviter le redémarrage du serveur lors de la modification d'une Action
  • 8.
    Perspectives ● Réduction des coûtset gain de temps pour une livraison rapide du projet ● Développement rapide et modulaire d'applications SaaS web et mobile ● Création de templates front-end et back-end réutilisables ● Intégration avec l'écosystème de librairies CSS et les modules JavaScript ● Possibilité d’utiliser les web components, le modèle standard de composant du langage HTML ● Système dynamique avec une intégration des librairies Java, comme celles de la fondation Apache (Apache Commons FileUpload, Apache POI..)
  • 9.