149 votes

Choisir un framework web Java maintenant ?

Nous sommes en train de planifier la migration d'un grand site web qui est construit sur un système d'information développé sur mesure. MVC à un cadre web basé sur Java qui fournit un support intégré pour les Ajax L'utilisation de la technologie de l'information et de la communication (TIC) permet d'améliorer la qualité de l'information, le contenu multimédia, le mashup, la mise en page basée sur des modèles, la validation, la séparation maximale du code HTML/Java.

Grails semble être un bon choix, mais nous ne voulons pas utiliser un langage de script. Nous voulons continuer à utiliser Java. La mise en page basée sur des modèles est une préoccupation majeure, car nous avons l'intention d'utiliser cette application web avec plusieurs sites web aux fonctionnalités similaires, mais à l'aspect et à la convivialité radicalement différents.

Une solution basée sur un portail est-elle adaptée à ce problème ?

Tout commentaire sur l'utilisation de "Spring Roo" ou "Play" sera très utile.

J'ai trouvé des postes similaires comme cette mais il date de plus d'un an. Les choses ont sûrement changé entre-temps !


Merci pour ces excellentes réponses ! Ce site est en train de devenir la meilleure source d'information pour les programmeurs de terrain. Cependant, je m'attendais à plus d'informations sur l'utilisation d'un duo portail-cms. Jahia a l'air d'être une marchandise. Existe-t-il quelque chose de similaire ?

1 votes

"nous ne voulons pas utiliser un langage de script", c'est dommage, pourquoi si je peux me permettre ? si vous aimez le framework Play, vous devriez essayer JRuby with Rails. Ce n'est pas du Java pur, mais il est super facile d'appeler des classes Java depuis JRuby.

2 votes

Grails (i.e. Groovy) fonctionne très bien avec Java, il n'y a pas de raison d'avoir peur.

0 votes

Mais la performance est importante : stronglytypedblog.blogspot.com/2009/07/

147voto

Pascal Thivent Points 295221

Une solution basée sur un portail est-elle adaptée à ce problème ?

Personnellement, je me tiendrais à l'écart des grosses solutions Portail (elles sont souvent des tueurs de productivité). J'ai entendu de bonnes choses sur Gatein mais je n'ai pas d'expérience concrète en la matière.

Tout commentaire sur l'utilisation de "Spring Roo" ou "Play" sera très utile.

En ce qui concerne Spring Roo, j'ai lu les réponses suivantes Spring roo Vs (guichet et printemps) et d'autres choses sur Internet mais je ne suis toujours pas convaincu (peut-être que je ne comprends pas), je ne suis pas sûr de sa maturité, et, plus important, je me demande vraiment ce que SpringSource est en train de faire avec Grails et Roo (non, Grails vs Roo - pourquoi SpringSource met en avant deux technologies très similaires ? ne me convainc pas qu'ils survivront tous les deux).

Je ne peux pas dire grand-chose sur Play. J'ai vu la démo, comme tout le monde, mais j'aimerais lire les commentaires de la vie réelle. D'ici là, j'attendrai.

J'ai trouvé des messages similaires (...). Les choses ont sûrement changé entre-temps !

Oui et non :) Mais entrons dans l'enfer des frameworks de présentation : il n'y a pas de réponse unique à votre question (comme il y a un an), il y a des douzaines de frameworks et pas de vainqueur clair. Pour n'en citer que quelques-uns :

  • JSF : Beaucoup de sceptiques à propos de ce framework basé sur des composants, moi y compris, donc je ne suis pas le mieux placé pour en parler, mais...
  • JSF 2 (+ CDI/Weld) : Les sceptiques du JSF sont encouragés ( par Gavin King ) de "jeter un second regard". En effet, je pense que JSF 2 est une grande amélioration, surtout avec CDI, mais... il est encore assez nouveau (comprenez, il manque de feeback). Si vous voulez adopter Java EE 6, jetez-y un coup d'œil.
  • Wicket : Un autre framework basé sur des composants qui suscite de plus en plus d'intérêt. J'en ai entendu beaucoup de bien : plus simple que JSF, design agréable, testabilité élevée, convivialité pour les concepteurs HTML, etc. Vous l'aimerez peut-être.
  • Tapisserie : Il suffit de ne pas (voir Pourquoi avez-vous cessé d'utiliser Tapestry ? )
  • Struts 2, Spring MVC, Stripes : Cadres basés sur l'action. Tous décents et couvrant vos besoins (personnellement, j'aime Stripes et son approche qui privilégie la convention à la configuration, voir Stripes vs. Struts2 pour s'en faire une idée).
  • GWT, Flex, Grails : Ce n'est peut-être pas ce que vous recherchez. Je ne peux pas vraiment parler des versions (récentes) de Flex et GWT mais je sais que Grails le fait. avoir certains fans .

En fait, je vous suggère de jeter un coup d'œil à l'article de Matt Raible intitulé présentations Il a vraiment fait un excellent travail en comparant les frameworks web, en montrant leurs forces et leurs faiblesses, en rassemblant des faits et des chiffres, en montrant les tendances... Je le recommande :

Vraiment, jetez un coup d'œil à ces présentations, elles vous aideront à trouver un cadre approprié (il n'y a pas de réponse unique mais vous pouvez restreindre le choix par élimination) et pourraient changer votre point de vue.

0 votes

Le récent tir de Matt sur java web f/ws était terrible. Si je me souviens bien, struts avait pratiquement le même score que f/ws, beaucoup plus riche et puissant. Il est impossible que quelqu'un puisse considérer quelque chose d'aussi banal que struts comme digne d'un score qui n'est qu'à quelques points de GWT ou Wicket.

3 votes

Oui, je me rends compte que beaucoup de gens n'ont pas aimé ma "matrice" ou ma logique de classement. En fin de compte, ce que j'espérais faire avec cette matrice était simplement de mettre en évidence une technique pour choisir un framework web. Vous pouvez lire la logique qui sous-tend mes classements dans l'article de blog suivant : raibledesigns.com/rd/entry/how_i_calculated_ratings_for

0 votes

La présentation de Matt Raible sur la comparaison entre JSF, Spring MVC, Stripes, Struts 2, Tapestry et Wicket est en effet assez ancienne...

41voto

chad Points 766

J'ai utilisé Printemps 3 3 et jQuery depuis un certain temps, mais j'ai entendu parler de Jouer et a tenté sa chance. Je l'aime vraiment, Play est un excellent compromis entre quelque chose comme PHP et les frameworks Java robustes comme Spring.

Les choses que j'aime le plus dans le jeu sont :

  • Il est très facile de mettre en place une application ludique, alors qu'il faut aller très loin dans le codage et la configuration pour mettre en place une application simple à l'écran avec Spring (bien que Spring 3 ait rendu les choses beaucoup plus faciles).
  • La sécurité Spring est géniale, mais au prix d'une certaine complexité. Le module de sécurité de Play est très simple et couvre les besoins de probablement 90% des applications existantes.
  • Il est possible de modifier le code et de rafraîchir le navigateur pour voir le changement, comme avec PHP, au lieu d'avoir à redéployer l'ensemble du système avec les frameworks basés sur les servlets.
  • Les messages d'erreur sont joliment affichés et ne sont pas si énigmatiques la plupart du temps. Play doit encore améliorer sa gestion des erreurs
  • Il existe un mécanisme de plugin pour Play qui est assez simple.
  • La persistance des objets est très bien réalisée dans la mesure où une base de données en mémoire et une base de données en ligne sont disponibles. JPA est fourni avec le cadre, de sorte qu'il n'est pas nécessaire de configurer des outils de persistance d'objets externes. Passer d'une base de données en mémoire à un véritable SGBDR est un changement d'une ligne dans le fichier de configuration.
  • La configuration MVC est très bien réalisée. La classe Model que vous étendez pour créer vos objets de domaine s'intègre au gestionnaire d'entités JPA. Il ne s'agit pas simplement de POJO .
  • Le mappage des URL aux contrôleurs est simple et flexible, et tout cela dans un seul fichier "routes".
  • Lorsque vous créez un projet, Play gère toutes les dépendances JAR et Play dispose d'un utilitaire pour éclipse -ify (ou l'IDE de votre choix) le projet afin qu'il soit importé directement dans votre IDE favori.

Ce que je n'aime pas dans le jeu

  • La documentation n'est pas encore complète, il existe encore de nombreuses fonctionnalités non documentées.
  • Le framework est le serveur, il faut donc dédier un port à chaque application. Je pense que quelqu'un travaille sur un plugin d'hôte virtuel, mais je ne l'ai pas encore vu en action.
  • Il est jeune, le projet est génial et la technologie est géniale, mais il a vraiment besoin de plus de développeurs. J'aimerais y consacrer un peu de temps, nous verrons bien.

17voto

bert Points 3906

Pour moi, le premier choix est Guichet .

C'est le cas :

  • Séparation claire du balisage et du code Java.
  • Des composants très faciles à écrire et à utiliser.
  • Ajax simple à utiliser
  • Testabilité.

Vous pouvez déboguer directement dans vos pages / composants et vous ne recevez pas de messages d'erreur cryptiques de la part de votre JSF mise en œuvre ;)

Il y a également une bonne comparaison de wicket <--> JSF dans conditions d'exécution .

4 votes

+1 Sans parler de l'orientation OOP pure avec l'héritage, le polymorphisme et la composition. De plus, les fichiers de configuration XML sont gratuits !

3 votes

Il est intéressant de constater que les gens votent ici parce qu'ils n'aiment pas le cadre proposé. Il n'y a pas que ma réponse à Wicket, presque toutes ont des votes négatifs.

13voto

Bozho Points 273663

Les trois premiers choix pour moi sont (par ordre alphabétique) :

Ils :

  • ont une bonne prise en charge d'Ajax
  • vous permet de créer de véritables sites web, et non des applications (comme GWT )
  • stable, bien documenté, largement utilisé
  • MVC
  • Java pur
  • intégration facile avec Spring en tant qu'intergiciel

17 votes

Je ne vois pas du tout comment on peut prétendre que JSF peut être utilisé pour "faire de vrais sites web". Tout cadre qui impose l'utilisation de POST perd immédiatement à cet égard.

3 votes

J'ai développé des "sites web réels" avec JSF, et je les ai utilisés sans aucun problème. En outre, l'utilisation de POST n'est imposée que lorsque vous publiez quelque chose. Vous êtes toujours libre d'utiliser une simple navigation GET. Théoriquement, il n'est pas correct d'utiliser GET si vous modifiez une ressource, n'est-ce pas ?

0 votes

De plus, il faudrait aussi rétrograder Pascal pour avoir suggéré JSF ;)

11voto

Gerard Banasig Points 1095

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