IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Frameworks Web Java Discussion :

Quelles technologies choisir pour mon application Web ?


Sujet :

Frameworks Web Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Quelles technologies choisir pour mon application Web ?
    Bonjour à tous.

    Voila dans le cadre des mes études, j'ai à réaliser une application d'organisation d'évenements. Il nous faut maitenant choisir les technologies à mettre en place.

    Voila les possibilités qui s'offrent à nous :

    1. Pour la partie Métier/données :

      • Hibernate/Spring
      • EJB 3.0/JPA


      J'avoue avoir un faible pour EJB 3.0 /JPA car j'ai trouvé ca d'une facilité déconcertante notamment par rapport aux EJB2 mais aussi par rapport à Spring. Surtout que j'ai l'impression que les EJB 3.0 reprennent le pattern ioc et apportent des facilités ...

    2. Pour la partie graphique (Web) :
      • Struts 1.X (pas 2)
      • Spring MVC


      La j'avoue que je ne sais pas trop. J'ai l'impression que les deux se ressemblent fortement même si je pencherai un peu plus pour Spring MVC et sa facilité de couplage avec les EJB par exemple.

      Voila, l'idée est que j'ai découvert ces technologies en TP et que j'aimerais apprendre à les connaitre plus à travers ce projet sans que cela deviennt trop compliqué.

      J'ai également lu quelques articles sur JBoss Seam qui serait un mix d'EJB/JSF (pour la partie graphique) mais je ne sais pas trop quoi penser de ce framework.

    3. Autres Points :
      - J'aimerais aussi utiliser un framework Ajax, le plus simple possible pour avoir une interface sympathique ! La je n'y connais rien, vous avez des idées ?
      - Enfin le projet necessitera également l'envoi de mails et le stockage de fichier pdf, vous avez une idée concernant ces éléments la ?


    Encore merci d'avance pour tout éclairage que vous pourriez me founir !

  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour.
    Pour la partie Métier/données :

    * Hibernate/Spring
    * EJB 3.0/JPA


    J'avoue avoir un faible pour EJB 3.0 /JPA car j'ai trouvé ca d'une facilité déconcertante notamment par rapport aux EJB2 mais aussi par rapport à Spring. Surtout que j'ai l'impression que les EJB 3.0 reprennent le pattern ioc et apportent des facilités ...
    Personellement, J'éviterais la première solution vu que tu te fais lier à un API particulier (Hibernate) et qu'il y'a JPA de nos jours (à moins que tu as absolument besoin de l'API Criteria d'Hibernate sans equivalent dans JPA).

    Sinon, je te ferais remarquer que JPA peut être utilisé sans EJB 3 et qu'il peut aussi être utilisé avec Spring.
    Je te conseille vivement la solution JPA+Spring car elle offre à peu près les mêmes fonctionnalités/facilité/avantages que JPA dans un serveur d'application complet et le tout dans un conteneur web comme tomcat.
    Si tu suis cette voie (JPA + Spring + Tomcat/Jetty), je te conseille alors d'utiliser Hibernate comme implémentation car il ne nécessite pas du load time weaving (un cauchemar à mettre en place avec Tomcat/Toplink par exemple).

    Pour la partie graphique (Web) :

    * Struts 1.X (pas 2)
    * Spring MVC


    La j'avoue que je ne sais pas trop. J'ai l'impression que les deux se ressemblent fortement même si je pencherai un peu plus pour Spring MVC et sa facilité de couplage avec les EJB par exemple.
    Ce serait dommage de se limiter à si peu de choix pour la seule raison que tu les connais déjà ...
    A mon avis, utiliser Struts 1 dans un nouveau projet est un choix bizarre et douteux ...
    Je connais pas Spring MVC mais j'entends que du bien à propos de lui ... quoi que de nos jours, un framework basé sur les actions me parait trop restrictif si on veut faire une IHM riche et complexe.
    Je te propose d'étudier la voie JSF: un framework de présentation orienté composants et faisant partie du standard JavaEE. Du coup, tu gagnes des tonnes de bibliothèques de composants riches et l'Ajax n'est qu'une brise à mettre en place avec RichFaces par exemple. De plus, ça s'integre super-bien et super-facilement avec Spring.

    Autres Points :
    - J'aimerais aussi utiliser un framework Ajax, le plus simple possible pour avoir une interface sympathique ! La je n'y connais rien, vous avez des idées ?
    Je viens d'en parler: JSF + RichFaces.
    J'en ai pas mal parlé dans mon blog aussi: cf ma signature.
    - Enfin le projet necessitera également l'envoi de mails et le stockage de fichier pdf, vous avez une idée concernant ces éléments la ?
    Y'a des tonnes de librairies pour les emails comme Javamail et cie. Spring gère la chose aussi.

    Voili voilou ! Je te souhaite bonne chance pour tes études et je te prévindrais que ça nécéssiterait pas mal de travail pour évaluer et ensuite utiliser ces technos, peu importe le choix que tu feras.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Qu'en est-il des EJB3 ?
    Bonjour,

    Premièrement, merci pour ta réponse détailée.
    Pour la partie métier, je me demande si les EJB3 ne sont pas plus simple à mettre en place et à utiliser que Spring, dans la mesure ou les EJB3 s'appuient aussi sur l'IOC, qu'ils utilisent plus les annotations que Spring qu'ils permettent aussi la gestion des transactions ....

    Pour avoir tester rapidement la technologie, je l'ai trouvé vraiment simple et facile d'utilisation, même par rapport à Spring. Quelqu'un a une idée la dessus ?

    Si j'ai bien compris le seul vrai avantage de Spring serait de se passer d'un serveur d'application par rapport à la solution EJB3 .... ?

    Merci

  4. #4
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Spring est beaucoup plus flexible et puissant en IOC que les EJBs: là, c'est son terrain de prédilection !
    De plus, il est parfaitement possible avec Spring 2.5 de faire de l'IoC avec les annotations, à la Guice.
    Spring gère aussi très bien les transactions, et d'une façon déclarative via l'AOP.
    Ajoutes à cela des tonnes d'autres goodies que fournit Spring (WebServices, JMX (MBeans), JMS, etc.)

    Tout ça dans un conteneur leger capable de fonctionner dans un environnement web ou SE.

    Rq: Je ne suis pas en train de faire de l'évangélisme pour Spring, juste le présenter correctement.
    Après, c'est à toi bien sûr de faire le choix qui te semble le mieux adapté à tes besoins.

  5. #5
    Membre éclairé Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Points : 695
    Points
    695
    Par défaut
    Salut, je m'introduit dans cette discussion juste pour connaitre un truc
    Si tu suis cette voie (JPA + Spring + Tomcat/Jetty), je te conseille alors d'utiliser Hibernate comme implémentation car il ne nécessite pas du load time weaving (un cauchemar à mettre en place avec Tomcat/Toplink par exemple).
    C'est quoi le load time weaving
    Where is my mind

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Load time weaving ?
    Ouais aucune idée de ce que c'est non plus.

    Ca a quelque chose à voir avec le load balancing ?

  7. #7
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour.
    Non, le load balancing est autre chose (répartition de la charge).
    Derrière le nom barbare (Load Time Weaving : LTW), se cache un concept simple: pour supporter le lazy fetch des collections et autres attributs, on modifie les entités en instrumenatnt le byte code pour y injecter le code responsable de lancer la récupération de données de la base de données si et seulement si on appèle le getter de l'attribut concerné pour la première fois.
    Cette opération s'appèle weaving ~ couture: on assemble ensemble le code utilisateur et le code d'une librairie.

    Cette opération peut être faire soit:
    - à la compilation: compile time weaving.
    - après compilation : post-compile time weaving
    - au chargement de la classe concerné par un ClassLoader: Load Time Weaving.

    Voili voilou !

  8. #8
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 058
    Points
    1 058
    Par défaut
    Pour ma part je te conseille Spring 2.5, une fois les concepts compris (la doc est excellente), c'est du gâteau. L'utilisation de JPA est d'une simplicité déconcertante (j'utilise l'implantation Hibernate), tout en full annotation.

    Le XML des beans n'est pas trop complexe à mettre en oeuvre, une ligne par beans métier. L'injection se fait très facilement avec @Resource.

    Pour la présentation j'utilise Struts 2 qui est très simple aussi.
    Pour l'Ajax j'utilise prototype et script.aculo.us, il y a un poil plus de travail à faire qu'avec les framework (struts 2.1 gérera l'ajax nativement, mais il n'est pas encore sorti). Ca reste très simple néanmoins.
    Le couplage est encore très facile avec les beans métiers. Il suffit du plugin Spring (fournit par défaut) et de mettre des annotations @Resource. That's all.

    Utiliser un framework action si c'est pas avec de l'AJAX ça me semble en effet plus complexe que les frameworks par composants. M'étant toujours placé dans le premier cas je ne pourrais pas parler de ces derniers.

  9. #9
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour,
    Il est même possible avec Spring 2.5 de ne pas avoir à déclarer ses beans dans un fichier xml: Un simple stéréotype (@Repository pour les DAOs, @Controller pour les contrôleurs et @Service pour un service) ainsi que l'activation de l'auto-scan des classes suffit.

    Bonne chance.

Discussions similaires

  1. Quelle architecture web choisir pour mon site web ?
    Par dhay06 dans le forum Débuter
    Réponses: 3
    Dernier message: 29/07/2011, 17h47
  2. Quelle techno choisir pour une application web en décisionnel?
    Par chikhare dans le forum Général Conception Web
    Réponses: 4
    Dernier message: 19/09/2009, 10h35
  3. Réponses: 11
    Dernier message: 18/09/2009, 10h59
  4. Quelles technos pour mon application web en java?
    Par _skip dans le forum Frameworks Web
    Réponses: 4
    Dernier message: 08/10/2008, 11h26
  5. Quelle distribution choisir pour une application WEB J2EE
    Par dj_f. dans le forum Distributions
    Réponses: 1
    Dernier message: 14/03/2008, 11h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo