85 votes

Quels sont les avantages et les inconvénients des différents frameworks web Java ?

J'envisage de créer mon propre site Web en utilisant Java et j'essaie de décider quel cadre utiliser. Cependant, une recherche rapide sur les frameworks Java donne plus de 50 choix possibles !

Mon site web ne servira qu'à mon propre plaisir de le construire au début, mais s'il devient populaire, il serait bon qu'il ait une certaine évolutivité, ou au moins qu'il puisse être remanié pour cela.

Quelles sont les principales différences entre les cadres les plus populaires ? Y a-t-il des cas où l'un d'entre eux est nettement plus performant que les autres ? Par exemple, les applications d'entreprise à fort trafic par rapport aux petites applications à faible trafic. Je me demande également si certains sont beaucoup plus faciles à apprendre et à utiliser que d'autres.

Quelqu'un a-t-il de l'expérience avec certains de ces cadres et peut-il faire une recommandation ? Le nombre impressionnant de choix ne sert-il pas d'avertissement pour éviter, dans la mesure du possible, le développement Web basé sur Java ?

58voto

jsight Points 16025

J'ai utilisé Tapisserie 3 , Guichet , Echo et JSF assez largement. Je vous recommande vivement d'y jeter un coup d'œil et de choisir celui qui vous semble le plus facile et qui correspond le mieux à votre façon de travailler.

Parmi eux, celui avec lequel j'ai le plus facilement travaillé est le suivant Guichet en raison de la légèreté de la construction des composants et de la simplicité de la mise en page. Cela vaut doublement si vous utilisez votre propre code de base de données au lieu d'Hibernate ou d'un autre framework (je n'ai jamais été complètement satisfait de Wicket Hibernate ou de Spring Integration).

Echo est idéal si cela ne vous dérange pas d'écrire toute votre mise en page en Java. Je sais que c'est différent maintenant, mais je pense toujours que ce produit sert une niche assez étroite. Il semble qu'ils changent le modèle de développement à chaque version majeure.

Tapisserie est un excellent produit, mais il est manifestement très différent des autres en termes de modèle de développement, car il est dirigé principalement par un seul homme. Howard Lewis Ship est sans aucun doute très intelligent, mais je suis déçu de leur décision d'oublier la rétrocompatibilité à chaque version. Encore une fois, cependant, pour vos besoins, cela peut ne pas être important, et j'ai toujours trouvé les produits Tapestry agréables à travailler.

JSF est sorti depuis des années, et semble toujours être quelque chose qu'un Struts construit pour résoudre tous les problèmes de Struts. Sans vraiment comprendre tous les problèmes de Struts. Il a toujours une impression d'inachevé, bien que le produit soit manifestement très flexible. Je l'utilise et j'ai de l'affection pour lui, avec de grands espoirs pour son avenir. Je pense que la prochaine version (2.0), qui sera livrée dans JEE6, le mettra vraiment en valeur, avec une nouvelle syntaxe de modèle (similaire à Facelets) et un modèle de composant simplifié (composants personnalisés dans un seul fichier... enfin).

Et, bien sûr, il existe un million de petits cadres et outils qui ont leurs propres adeptes ( Vélocité pour les besoins de base, les matières premières JSPs Struts, etc.). Mais je préfère généralement les frameworks orientés composants.

Au final, je vous recommande de jeter un coup d'œil à Tapestry, Wicket et JSF et de choisir celui qui vous convient le mieux. Vous trouverez probablement très rapidement celui qui correspond à la façon dont vous aimez travailler.

38voto

bpapa Points 10188

Mon préféré est le Spring Framework. Avec la version 2.5 de Spring MVC, c'est vraiment génial, avec de nouvelles annotations, des fonctions de convention sur la configuration, etc.

Si vous faites quelque chose de très simple, vous pouvez également utiliser l'API Servlet ordinaire sans vous soucier d'un framework.

25voto

Je recommande le composant orienté Guichet cadre. Il vous permet d'écrire votre application web en code Java pur et simple, d'utiliser des POJO comme modèle pour tous les composants et de ne pas avoir à vous embêter avec d'énormes fichiers de configuration XML.

J'avais développé avec succès une application bancaire en ligne avec Struts lorsque j'ai découvert Wicket et vu à quel point le développement d'applications web pouvait être facile !

17voto

ScArcher2 Points 22118

J'ai récemment commencé à utiliser le Cadre des rayures . Si vous recherchez un framework basé sur les requêtes, très facile à utiliser, mais qui n'impose aucune limite à ce que vous faites, je vous le recommande vivement.

Il est similaire à struts, mais il va bien au-delà. Il existe même des projets de plugins qui vous permettent d'utiliser hibernate ou jpa avec très peu de configuration.

Il y a beaucoup de bons frameworks sur le marché, mais j'ai entendu dire que Wicket en était un bon aussi, mais je ne l'ai pas utilisé.

17voto

Dick Chesterwood Points 935

Une autre solution à envisager serait Grails.

Bien qu'il ne s'agisse pas strictement d'un framework Java, il dépend de Groovy (si vous ne l'avez pas encore vu, il s'agit d'un langage dynamique qui fonctionne sur la JVM). La plupart des Java valides sont aussi des Groovy valides, il est donc assez facile à apprendre.

Mon dernier projet utilisait Grails et, bien que je n'aie jamais utilisé Groovy auparavant, je l'ai découvert :

  • Groovy est un plaisir à utiliser, tellement plus amusant que Java.
  • Il y a très peu de configuration à faire, pas de XML et vous êtes opérationnel avec une application de base de données complète en moins d'une heure.

L'inconvénient est qu'il s'agit d'un cadre très "intelligent" qui vous cache beaucoup de choses, de sorte que lorsque les choses tournent mal, il peut être très long de trouver le problème.

Le projet que j'ai mentionné n'aurait tout simplement pas été livré dans les délais ou le budget impartis si nous avions opté pour un framework plus traditionnel (même un framework que nous connaissons bien et avec lequel nous sommes compétents, comme SpringMVC), donc Grails est définitivement un framework que nous continuerons à choisir à l'avenir.

(mais +1 pour Wicket et Stripes, deux excellents cadres).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X