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 :

Struts / Struts 2 / JSF 1/2 et DAO: pour une application web que choisir ?


Sujet :

Frameworks Web Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Points : 181
    Points
    181
    Par défaut Struts / Struts 2 / JSF 1/2 et DAO: pour une application web que choisir ?
    Bonjour, je me pose cette question aujourd'hui parce que il y a l'embarras du choix.
    Aujourd'hui, pour une application Web entreprise en client léger et en java j2ee, quel choix est naturel a faire et pourquoi.
    J'ai besoin de réfléchir à ce choix pour migrer une application de 200 utilsateurs, en ligne, avec des calcul et traitements complexes, des accès bases de données.
    Je vais avoir besoin de bien m'orienter, vers une direction sure, éprouvée, souple, scalable, réutilisable et bien solide.
    J'ouvre le débat.

    De même pour la couche DAO, que choisir également ? un framework spécifique?

    Merci à tous de venir y participer. Bienvenue à vous.


  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    200 utilisateurs, ça reste assez peu, donc, pour ma part, je choisirais JSF2 avec Primefaces pour la partie IHM si l'application est typée RIA.
    JSF est un standard et Primefaces est une bibliothèque de composants vraiment sympa et complète.

    Pour l'accès à la base de données, tout dépend du volume de la base et des relations entre tables à gérer.
    Tu peux t'orienter vers un ORM (Hibernate, EclipseLink), soit directement soit au travers de JPA, sous forme de beans simple ou d'EJB.

    Maintenant, c'est difficile de répondre de manière catégorique dans la mesure où tu ne dis pas grand chose des contraintes de l'application.
    Si elle doit être réactive, haute disponibilité, multi-langues, etc...

    m'orienter, vers une direction sure, éprouvée, souple, scalable, réutilisable et bien solide
    On peut faire ça avec pas mal de technologies, généralement, c'est plus celui qui développe qui est en cause que la techno proprement dite.
    Avec struts1, on peut faire des applications robustes, réutilisables, souples et éprouvées... mais bon, la techno n'est plus maintenue et les compétences risquent d'être plus rares.
    Struts2... je ne connais pas donc je ne peux rien en dire
    Il y a aussi les frameworks javascript comme AngularJS, ExtJS qui ont une bonne cote mais personnellement, j'estime que la compatibilité avec les navigateurs n'étant pas assurée (on a le cas), c'est une mauvaise solution avant que javascript lui-même ne soit unifié.

    Pour ce qui est de la couche métier, on a en gros 3 choix :
    - EJB3
    - Spring
    - Objets java simples

    Certains diront que Spring est génial, super, moins contraignant qu'EJB etc, mais en fait, à l'heure actuelle, ça ne fait pas grand chose que le standard JEE ne fasse... Personnellement, j'utilise EJB3 au boulot et j'apprécie vraiment...
    A titre privé (auto-entrepreneur), j'utilise des DAO sous forme d'objet simple et Hibernate pour l'ORM ou JDBC directement.
    Le seul avantage ici, c'est qu'on peut se passer d'un serveur JEE complet, un simple Tomcat fait l'affaire...

    Voilà, ce n'est que mon avis
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé Avatar de freddou17
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 341
    Points : 566
    Points
    566
    Par défaut
    Salut,
    C'est un peu large comme demande je trouve . En effet aujourd'hui il y a nombre de solutions qui sont pérennes, full spring, coupler struts1/2 avec spring, pour la partie DAO hibernate ou JPA mais tu as aussi JAVA EE 6-CDI. Je pense qu'il faut que tu nous délimites un peu plus ton projet, par exemple, les contraintes de temps, des impératifs technique, l'existant, la réutilisation de code si ton appli est déjà en Java, tes connaissances ...

    "Aucun de nous ne sait ce que nous savons tous, ensemble."
    Lien vers mon appli Funcash n'hésitez pas à donner votre avis

  4. #4
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Si tu veux quelque chose de scalable, il serait judicieux d'oublier les solutions Struts/JSF qui reposent assez naturellement sur la session.
    La session est un concept difficilement scalable.

    Côté serveur pour le traitement des requêtes tu as Struts1 (à oublier, pas le plus productif et plus maintenu), Struts2 (plus vraiment la côté du côté des développeurs), JSF (le standard JEE), Spring MVC (le standard de Grails), Spring REST (couche au-dessus de Spring MVC pour offrir un développement "naturel" de services REST), ...

    Côté serveur pour la génération de vues (pas le domaine que je connais le mieux) : Facelets (JSF) + framework composants [PrimeFaces (surement le plus plébiscité), RichFaces (utilisateur/correcteur je recommande pas), ICEfaces (assez discret)]

    côté client : ember, AngularJS (j'utilise avec plaisir, mon seul reproche un binding systématique très couteux en ressource mémoire/CPU. Les prochaines versions devraient permettre d'être flexible), Backbone.js, ...


    Frameworks FullStack : Grails (pas essayé mais assez tendance), Play! Framework (très tendance, assez répandu chez les PaaS), Lift (connais pas), ...

    Plateformes : J2EE, Vert.x (plateforme pour la programmation asynchrone, meilleur scalabilité en mono-machine), GWT/Vaadin (s'essoufle un peu, certains ont rencontré des problèmes de montée en charge), ...


    Comme tu peux le voir rien qu'un petit résumé et c'est déjà la foire d'empoigne.
    En général le choix s'effectue sur la base des connaissances actuelles (et éventuellement le goût/l'envie d'essayer une techno/un principe en particulier). Pour la plupart des technologies, il faudra s'investir à fond dans celle-ci.
    Ainsi pour JSF, il faudra partir sur les Facelets avec un framework de composant et très certainement une stack J2EE. Pour Grails, il faudra adopté Spring (Beans, Context, MVC), Gant et Groovy pour en tirer pleinement partie.
    Pour les frameworks client, JavaScript sera un passage obligé (ou presque, voir Dart, TypeScript, CoffeeScript, Ceylon, etc.)
    Pour Play! ce sera SBT et Scala (et surement MongoDB).
    Pour Vert.x avec l'arrivée de Java8 les langages alternatifs (Groovy, Scala, Ceylon, JavaScript, Clojure, etc.) ne seront peut-être pas une nécessité mais offrirons surement une meilleur productivité.

    Donc mon conseil, fait le point sur les compétences à ta disposition, les envies d'apprendre de nouvelles choses et le temps dispos pour apprendre de nouvelles choses (avec ET sans envies) + le temps pour essuyer les plâtres.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Points : 181
    Points
    181
    Par défaut struts / Struts 2 / JSF 1/2 et DAO: pour une application web que choisir?
    Merci tout d'abord pour vos explications. Il faut que je fasse le tri dans tout ce qui a été dit, afin de partir dans la bonne direction.
    Je n'ai pas encore assez analysé pour l'instant toutes les contraintes. Mais , il semble que beaucoup
    de voies sont possibles.
    Merci donc de participer à cette phase de déffrichage, ou dégrossissement dans le domaine.



    Le débat n'est pas clos, mais il est clair que c'est très vaste, et qu'il faudra bien cibler mes besoins à différents niveaux.

Discussions similaires

  1. Réponses: 7
    Dernier message: 17/10/2007, 17h06
  2. Réponses: 5
    Dernier message: 10/05/2007, 19h04
  3. Problème de filtre pour une application struts.
    Par mazizou dans le forum Struts 1
    Réponses: 5
    Dernier message: 31/03/2007, 15h54
  4. Déployer une application Web Struts avec Ant
    Par fisico dans le forum Struts 1
    Réponses: 3
    Dernier message: 06/03/2007, 14h55
  5. Réponses: 3
    Dernier message: 01/03/2007, 21h26

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