Projet-Java-EE-Présentation - gardeux

Download Report

Transcript Projet-Java-EE-Présentation - gardeux

Projet JAVA EE Approfondi
Etudes des frameworks JSF & Ibatis –
Réalisation d’un forum
ALBE Aurélien – AOUAD Hind – CHEA Sann-Rémy – FERREZ Rémi – HEBERT Quentin – LEBEL Gwendal
Plan de la présentation
• Objectifs et organisation du projet
▫
▫
▫
▫
Rappel des objectifs du projet
Organisation du travail et phase de développement
Respects des délais
Difficultés rencontrées
• Framework de persistance : Ibatis
▫ Présentation du framework
▫ Comparaison avec Hibernate
• Framework MVC : JSF
▫ Présentation du framework
▫ Comparaison avec Struts
• Démonstration
Objectifs et organisation
• Rappel des objectifs du projet
▫ Familiarisation avec deux autres frameworks utilisés en entreprise
▫ Réalisation d’un forum simple, multi sujets, messages, utilisateurs (simple et
administrateur)
• Organisation du travail
▫ Répartition des tâches en phase de conception et études de frameworks
(Modélisation UML, MCD, études de l’installation des frameworks)
▫ Répartition des tâches pour la phase de développement/test
▫ Mise en place d’un SVN (SourceForge) et d’un Googlegroup
• Respects du planning
▫ Respecté en phase de conception et en début de développement
▫ Chevauchement de la phase de tests avec la fin du développement
• Difficultés rencontrées
▫ Appréhension difficiles des frameworks
▫ Choix des limites de réalisation (mp, stats, épingler des sujets, ban, …)
iBATIS
• Framework de persistance de données
▫ Java - .NET - Ruby on Rails
▫ Fichiers de configuration XML / .properties
• SQL Maps
▫ Mapping XML
▫ Relation BDD  Objet
SELECT
PER_ID as id,
PER_FIRST_NAME as firstName,
PER_LAST_NAME as lastName,
PER_BIRTH_DATE as birthDate,
PER_WEIGHT_KG as weightInKilograms,
PER_HEIGHT_M as heightInMeters
FROM PERSON
WHERE PER_ID = #value#
• DAO (Data Access Object)
▫ Accès simple à la BDD
▫ Implémentation des requêtes SQL
Ibator
• Plugin pour Eclipse
• Paramétrage par fichier XML
• Génération automatique de classes Java
▫ Beans
▫ Examples
 Critères
▫ DAO
 Nombreuses requêtes implémentées
 Utilisation des examples
 Utilisation des clés primaires
Ibatis et Hibernate
Hibernate :



Ibatis :
Plus complet
Indépendant de la base de données
Hibernate permet la création d’un modèle d’objet ( en Java ) par
l’utilisateur et crée la base de donnée automatiquement.
Plus simple à utiliser
Flexible (définition des requêtes)
Dépend de la base de données
Peu de documentation
A la différence d'Hibernate, l’utilisateur d’iBATIS reste maître du SQL
généré.
Il permet juste de mapper des requêtes SQL sur des objet en se basant sur
une Map.





JSF 2.0
• Java Server Faces
▫ Framework d'interface utilisateur pour
les applications web
▫ Basé sur JSP et Servlet
▫ MVC :
 Les composants JSF font partie de la vue
 La partie modèle est représentée par des
JavaBeans.
 Le rôle du contrôleur est joué par la
Servlet de JSF. (managed-bean)
JSF 2.0
Fichier JSF
JSF 2.0
Bean Managé (faces-config.xml)
<faces-config>
<managed-bean>
<managed-bean-name>utilisateur</managed-bean-name>
<managed-bean-class>model.Utilisateur</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
</faces-config>
JSF 2.0
Règles de navigation (faces-config.xml)
<faces-config>
<navigation-rule>
<from-view-id>/formulaire.jsp</from-view-id>
<navigation-case>
<from-outcome>Ok</from-outcome>
<to-view-id>/ok.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>Erreur</from-outcome>
<to-view-id>/erreur.jsp</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>
Comparaison JSF-Struts
• Point commun:
▫ Framework MVC
• JSF est orienté « View Controller »
• Struts est orienté « Action Controller »
 Complémentaire
JSF a profité de la maturité de Struts et s’en est inspiré.
Comparaison JSF-Struts
• Points forts de Struts:
▫
▫
▫
▫
Tag lib pour les vues
Paramétrage par des fichiers XML (Emplacement des beans, mapping,…)
Pas de servlet mais des Action et des Action Form (Formulaire facilité avec vérification des champs)
Paramétrage des langues (messageRessource.properties)
• Points faibles de Struts:
▫
▫
Installation et paramétrage difficile
Erreur difficile à trouver (Car séparation des fichiers et des action à effectuer)
• Points forts de JSF:
▫
▫
▫
▫
▫
▫
Utilise les managed bean
Contrôle de formulaire facilité
Nombreux composants graphiques réutilisable
Facilite et standardise le développement d’applications web
Mapping HTML/Objet
Configuration de la navigation entre les pages
• Point faible JSF:
▫
▫
▫
Maturité: technologie récente qui nécessite l'écriture de beaucoup de code
Manque de composants évolués en standard: La plupart ont une correspondance directe avec l'HTML
Dépendance des JSTL/EL
Démonstration du forum