Différence entre Apache Tapestry et Apache Wicket
Apache Wicket ( http://wicket.apache.org/ ) et Apache Tapestry ( http://wicket.apache.org/ ) sont les deux composants framework webs - contrairement à l'action en fonction des cadres comme les Rayures par la Fondation Apache. Les deux vous permettent de construire votre application à partir de composants en Java. Ils ont tous deux l'air très semblable à moi.
Quelles sont les différences entre ces deux cadres? Quelqu'un a une expérience à la fois? Plus précisément:
- Comment est leur performance, combien peut-état de la manipulation être personnalisé, peuvent-ils être utilisés apatrides?
- Quelle est la différence dans leur modèle de composant?
- Qu'aimeriez-vous choisir pour quelles applications?
- Comment font-ils pour s'intégrer avec Guice, Printemps, JSR 299?
Modifier: j'ai lu la documentation pour tous les deux et j'ai utilisé les deux. Les questions ne peuvent pas répondre suffisamment à la lecture de la documentation, mais à partir de l'expérience de l'utilisation de ces pendant un certain temps, par exemple, comment utiliser Guichet dans un apatride à la mode pour la haute performance des sites. Merci.
- JFYI, j'ai révisé ma réponse beaucoup.
- Personnellement, je ne éviter de Tapisserie pour la raison que son a tendance à être complètement réécrit à chaque version majeure, et il est rarement compatible avec les versions antérieures.
- À partir de la version 5 cela ne devrait plus être un problème de version 5 a été construit avec l'avenir de l'extensibilité à l'esprit.
Vous devez vous connecter pour publier un commentaire.
Quelques différences que je vois entre eux:
la structure, où vous pouvez travailler avec
les conditions et les boucles pour atteindre
comportement dynamique. Wicket est
complètement dynamique; vous pouvez charger
composants dynamiquement, de les remplacer
au moment de l'exécution, etc. Les conséquences de
ce sont cette Tapisserie est plus facile à
optimiser, et que le Guichet est plus
souple dans son utilisation.
sont à peu près aussi efficace dans
l'exécution, mais le Guichet s'appuie sur
côté serveur de stockage (par défaut, le
page en cours de session, et passé
pages dans un "cache de second niveau", qui
est par défaut un fichier temporaire dans le fichier
système). Si cela vous ennuie, pense
sur le nombre de sessions simultanées
vous vous attendez à avoir aux heures de pointe et
calculer avec les dis ~100ko par session
(ce qui est probablement sur le côté haut).
Cela signifie que vous pouvez exécuter à peu près
soutien 20k sessions simultanées pour
2 GO. Dire 15k parce que vous avez besoin que
de la mémoire pour d'autres choses aussi. De
évidemment, l'inconvénient de stockage
l'état, c'est que ça ne marchera bien
avec l'affinité de session, donc c'est un
limitation lors de l'utilisation de Guichet. L'
cadre vous offre un moyen
pour mettre en œuvre des apatrides pages, mais si
vous êtes en développement entièrement apatrides
les applications que vous pourriez envisager une
cadre de référence différent.
J'ai lu quelques fois maintenant que les gens pensent de Guichet fonctionne grâce à l'héritage d'un lot. Je tiens à souligner que vous avez un choix. Il existe une hiérarchie de composants, de Guichet, mais prend également en charge la composition de bien des constructions comme les IBehavior (sur le dessus de qui, par exemple, le Guichet de l'Ajax est construit). Sur le dessus de ce que vous avez des choses comme des convertisseurs et des validateurs, auquel vous ajoutez les composants, à l'échelle mondiale, ou même comme un transversales qui concernent l'utilisation de certains de la phase auditeurs de Guichet fournit.
RÉVISÉ après des études de Tapisserie 5.
Guichet de l'objectif est une tentative de rendre développement web semblables à de bureau GUI un. Ils ont réussi à le faire vraiment bien, au détriment de l'utilisation de la mémoire ( HTTPSession ).
Tapisserie 5 l'objectif de est de faire très optimisé (pour le CPU et mémoire) composant orienté web framework.
Les très gros écueil pour moi a des réponses "Guichet prend en charge apatrides composant!" les arguments "de Guichet, c'est la mémoire de la faim". Alors que le Guichet en effet apatrides composants qu'ils ne sont pas "une priorité du Guichet de développement". Par exemple, un bug dans StatelessForm n'a pas été fixé pour un temps très long - voir StatelessForm - problème avec les paramètres après la validation échoue.
Malheureusement Tapisserie 5 tutoriel ne pas souligner que la Tapisserie exemple de code comme " t:boucle source="1..10"... " peut être une mauvaise pratique. Donc, des efforts devraient être mis par écrit pour la Tapisserie des conventions d'utilisation des bonnes pratiques si votre équipe n'est pas très petit.
Mes recommandations:
Voici une jolie comparaison approfondie d'IBM Développeur Travaille.
http://www.ibm.com/developerworks/java/library/os-tapestrywicket/index.html?ca=drs
Mise à jour: le lien est mort, mais vous pouvez trouver la page sur http://web.archive.org/web/20131011174338/http://www.ibm.com/developerworks/java/library/os-tapestrywicket/index.html?ca=drs
Je pense que le Guichet est plus simple d'utiliser le framework.
Aussi, le Guichet ne permet pour la classe de rechargement via votre IDE chauds du code de remplacer le système. C'est tout ce qui est nécessaire pour le Guichet de ruissellement des versions modifiées d'une application en cours d'exécution de classes. Les restrictions habituelles s'appliquent pour les hot-code de remplacer, comme le fait d'avoir à s'exécuter en mode Debug (Eclipse) et de ne pas être en mesure de modifier les caractéristiques structurelles d'une classe (c'est à dire un nom de classe, changer de méthode signatures etc...).
Je n'aime pas la Tapisserie modèle de programmation et je sais que de nombreux développeurs de quitter la Tapisserie à cause de trop de changements et des incompatibilités dans le développement. Voir: http://ptrthomas.wordpress.com/2009/09/14/perfbench-update-tapestry-5-and-grails/
Wicket est un très bon framework web. Le meilleur de tous ce que je sais. Je suis l'utilise depuis la version 1.3 et toujours obtenir ce que je veux.
Wicket a une excellente intégration avec Spring - il suffit d'utiliser @SpringBean annotation dans vous code à injecter tout le printemps de la fève à vos classes.
Essayer http://incubator.apache.org/click/ .
Il est étonnant framework web java.
Certains l'appellent “le Guichet fait droit” 😉
separation of code and markup
qui est l'une des plus grandes caractéristiques du Guichet - en fait, Cliquez sur les utilisations de la Vélocité pour le HTML est un langage de templating en lui-même. En raison de ce Clic n'est pas vraiment de la composante orientée, même si elle prétend être, il est plus proche de JSTL ou peut-être de la Tapisserie à cet égard. Aussi, vous êtes clairement de la publicité qui me fait me sentir mal à l'aise au sujet de votre post dans son ensemble.Comme je l'ai dit quand 4.1 était la langue officielle de la version stable:
Vous devriez prendre un très bon coup d'oeil à l'histoire du développement de la Tapisserie avant de vous engager à l'utiliser. La tapisserie a fait beaucoup de non-compatible avec les mises à niveau, sans la poursuite du soutien des anciennes versions. Les patchs à 4,1 ne sont pas traitées plus dans un délai raisonnable. C'est, à mon point de vue n'est pas acceptable pour la version stable officielle.
S'engageant à utiliser Tapisserie 5 signifie:
vous devriez devenir un committer;
vous devez suivre toutes les nouvelles de développement, d'abandonner les anciennes versions aussi vite que possible;
maintenir la stabilité des versions de vous-même.