Une présentation abstraite en vue de proposer une orientation technique pour sortir l'entreprise de l’imbroglio qu'est Java Server Faces, pour une réduction des coûts de développement et un gain de temps dans l'optique d'une livraison rapide des projets...
3. 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
4. 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
5. 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
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 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
8. 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..)