Un modèle de développement « MVC » (Model-View-Controller) est un canevas qui permet de séparer les aspects de développement du modèle métier (le « Model »), de la logique de présentation (la « View ») et de la logique d’interaction avec l’utilisateur (le « Controller »). Il y a plusieurs intérêts à utiliser un framework MVC ; en particulier, ça permet de séparer les tâches et ainsi de diviser pour régner :
- Un graphiste peut développer les écrans, un spécialiste du SOA ou des bases de données, développer le model et un développeur web de coder les interactions
- Vous pouvez simplement remplacer un des aspects de votre développement et :
- créer rapidement une maquette en ramplaçant vos composants métiers ne sont pas encore disponibles par des « bouchons »
- changer la présentation et la logique d’interaction en réutilisant la couche métier (pour passer du client/serveur au web, au web 2.0 ou fournir plusieurs type d’interfaces pour la même application)
- Vous pouvez ré-utiliser le code métier, en offrant une couche d’interaction sous forme de services
- Les tests de chaque partie de votre application peuvent être séparés.
- Le modèle MVC structure vos développements et améliore leur lisibilité… Si en outre, vous utilisez le best of breed des technologies pour développer chacun de ces aspects, vous accélèrer vos développements
- …
Apache Struts est L‘implémentation d’un « Controller » (le C de MVC). Il a vraiment contribué à populariser cette approche. Ceci dit vous pouvez utiliser un modèle de développement MVC avec la plupart des langages et/ou interfaces. Avec J2EE 1.4 et son successeur Java EE 5, cette approche devient universelle. JavaServer Faces, non seulement implémente un « Controller » mais en plus rend son modèle de programmation aussi simple qu’en client/serveur :
- Avec Struts, il fallait dire : « Si l’utilisateur demande telle page et que grâce aux attributs qu’il envoie (et que je récupère quasi-explicitement) je m’apercois qu’il a cliqué sur tel bouton… Alors ». Ce modèle a vraiment changé la façon de développer des applications web et est éprouvé mais…
- Avec JSF, vous dites simplement : « Si l’utilisateur clique sur tel bouton (ou lien…), alors ». Comme vous le faîtes en Swing ou (peut-être) en Visual Basic.
En outre JavaServer Faces :
- récupère implicitement l’ensemble des composants d’une page et offre une API pour y accèder de manière programmatique,
- déclenche les évènements liés aux modifications saisies par les utilisateurs,
- offre un référentiel pour permettre à tous de créer et partager des composants intelligents. De nombreuses implémentations existent d’ailleurs (cf JSFCentral) et permettent de développer des interfaces web riches (cf AJAX, RIA, Web 2.0) sans connaître toutes les technologies des navigateurs web,
- adresse des presentations différentes pour des terminaux différents,
- permet i18n et L10n,
- fait parti du standard Java EE,
- est capable de tirer parti de nombreuses technologies de présentation (Java Server Pages *JSP*) et de nombreuses technologies de type Model (Enterprise JavaBeans 3.0 *EJB3*)
- Est facile à utiliser et est intégré dans la plupart des Environnements de développements Java, comme ci-dessous
Parfait… Si tout est si bien et facile pour développer des applications qui suivent le modèle MVC grâce à Java EE et JavaServer Faces, pourquoi en parler ? Pour poser une question : Comment fait-on pour intégrer de manière simple et souple M-V-C ? Et bien justement, c’est le sujet que j’aborderai dans une de mes prochaines discussions.
-GarK!
1 réflexion sur “Apologie de JavaServer Faces (JSF) /*+Quoique*/”
bonjour,
merci d’avoir maitriser ces outils,
juste un quetion comment faire une application web avec jsf et toplink et ejb et mysql et jboss?
svp donnez votre avis sur projet
j’ai un probleme c’est avec toplink et mysql « view » web
Les commentaires sont fermés.