Quels sont les avantages D'Apache Wicket? [fermé]
Je ne suis pas un développeur Java, donc je pourrais avoir des termes erronés... mais.
Une application avec laquelle j'intègre passe du printemps au guichet. Bien que cela ne devrait pas affecter mon intégration avec elle, je me suis demandé pourquoi ils feraient cela?
D'après ce que je sais, Le printemps est le cadre le plus populaire. Je ne sais rien à ce sujet, sauf qu'il est populaire. J'ai lu la page Wicket et Wicket semble vraiment simple et direct.
Quels sont certains des avantages de Wicket?
Il me semble que changer votre cadre entier serait un travail alors je me demande si Wicket offre quelque chose que le printemps ne fait pas?
10 réponses
Les avantages qui sont souvent vantés dans les cercles que je fréquente sont:
- Votre html peut être entièrement compatible xhtml - il y a une très belle séparation de la présentation et de la logique en ce sens que la seule chose que votre couche présentation/html doit savoir sur wicket sont les attributs wicketid dans les balises html standard. C'est merveilleux pour le client html/CSS/javascript de votre équipe qui ne fait que peu ou pas de travail java réel. Aucun autre framework web basé sur java ne peut prétendre cela, afaik.
- Pas de xml config pour tout ce qui est spécifique au guichet - tout peut être fait dans la source et très peu doit être fait sur le web standard.xml pour votre .la guerre
- le développement basé sur des composants est assez facile à grok - surtout si vous avez un arrière-plan non web (par exemple un programmeur swing). il encourage la réutilisation un peu plus que mvc, imo.
Voici quelques fonctionnalités d'Apache wicket:
Modèle de Composant POJO
Les Pages et les composants de Wicket sont de vrais objets Java qui prennent en charge l'encapsulation, l'héritage et les événements.
Facilité de Développement
Parce que Wicket est Java et HTML, vous pouvez tirer parti de ce que vous savez sur Java ou votre éditeur HTML préféré pour écrire des applications Wicket.
La Séparation des Préoccupations
Wicket ne mélange pas le balisage avec le code Java et ajoute aucune syntaxe spéciale pour vos fichiers de balisage. Les mondes de HTML et Java sont parallèles et associés uniquement par des identifiants Wicket, qui sont des attributs en HTML et des propriétés des composants en Java. Depuis Wicket HTML est juste HTML et Wicket Java est juste Java, les codeurs et les concepteurs peuvent travailler indépendamment dans une large mesure et sans compter sur des outils spéciaux.
Secure
Le Guichet est sécurisé par défaut. Les URL n'exposent pas d'informations sensibles et tous les chemins d'accès des composants sont relatifs à la session. Des mesures explicites doivent être prises pour partager l'information entre les séances. En outre, le cryptage des URL permet des sites Web hautement sécurisés.
Support De Clustering Transparent Et Évolutif
Toutes les applications Wicket fonctionneront sur un cluster automatiquement et sans travail supplémentaire. Une fois que les goulots d'étranglement sont compris, Wicket permet le réglage de la réplication de l'état de la page. La prochaine version de Wicket prendra en charge les modèles côté client pour une évolutivité à zéro état.
Transparent Retour Bouton Soutien
Wicket prend en charge la gestion de version de page configurable. Lorsque les utilisateurs soumettent un formulaire ou suivent un lien à partir d'une page à laquelle ils ont accédé avec le bouton précédent dans leur navigateur, Wicket est capable de rétablir l'objet de la page à l'état dans lequel il se trouvait lorsque la page a été rendue à l'origine. Cela signifie que vous pouvez écrire des applications web qui prennent en charge le bouton Retour avec très peu de travail.
Support multi-onglets et multi-fenêtres
Guichet fournit un moyen facile d'écrire l'application qui prend en charge l'utilisation multi-fenêtres et multi-onglets permettant au développeur de réagir correctement lorsque les utilisateurs ouvrent une nouvelle fenêtre ou un nouvel onglet
Composants Réutilisables
Les composants réutilisables dans Wicket sont particulièrement faciles à créer. Vous pouvez non seulement étendre des composants existants avec le mot clé Java extends, mais vous pouvez également créer des composants de panneau qui associent un groupe de composants en tant qu'unité réutilisable.
Validation De Formulaire Simple, Flexible Et Localisable
C'est trivial pour écrire et utiliser des validateurs dans Wicket. Il est également très facile de personnaliser et de localiser l'affichage et le contenu des messages d'erreur de validation.
Sessions Typesafe
Wicket élimine le besoin de gérer les attributs HttpSession à la main. Les objets de Page et de Composant sont stockés de manière transparente dans la session et votre application peut également créer une sous-classe de session personnalisée avec des propriétés typesafe. Tous les objets stockés dans la session peuvent participer automatiquement à réplication de clustering.
Usine Personnalisable
Wicket est très extensible. La plupart des opérations sont personnalisables par des usines ou des méthodes d'usine.
Modèles Détachables
Les objets de modèle dans Wicket peuvent être très légers en termes d'utilisation de la mémoire et du réseau dans un cluster. Lorsqu'un modèle est utilisé, il peut "attacher", se peuplant d'informations provenant du stockage persistant. Lorsque le modèle n'est plus utilisé, les informations transitoires peuvent être réinitialisées, la réduction de la taille de l'objet.
Composants De Bordure
Les composants Wicket Border permettent la décoration des pages de manière réutilisable. Ceci est particulièrement utile pour l'héritage de structures de navigation ou de disposition communes.
Prise en charge de toutes les fonctionnalités HTML De Base
Wicket prend en charge les balises d'image, les liens, les formulaires et tout ce que vous avez l'habitude d'utiliser dans votre développement d'applications web.
Manipulation programmatique de Attributs
Les composants Wicket peuvent modifier par programme n'importe quel attribut de balise HTML.
Les Conversions Automatiques
Une fois qu'un formulaire est valide, le modèle peut être mis à jour à l'aide de convertisseurs Wicket. La plupart des conversions ordinaires sont intégrées et il est facile d'écrire de nouveaux convertisseurs.
Images Dynamiques
Wicket rend l'utilisation, le partage et la génération d'images très faciles. Les images dynamiques peuvent être créées en implémentant simplement une peinture méthode.
Liste Pageable
ListViews dans Wicket sont extrêmement puissants. Vous pouvez imbriquer n'importe quel type de composant dans une ligne ListView, même d'autres ListViews. PageableListView prend en charge les liens de navigation pour les grandes listes.
Composant De L'Arbre
Hors du composant box tree pour naviguer et sélectionner des nœuds.
Localisation
Les pages HTML, les images et les chaînes de ressources peuvent toutes être localisées.
Spring est plus que Spring MVC. Vous pouvez (et devriez probablement) utiliser Spring avec Wicket.
Guichet rochers!
Spring (dont la partie UI s'appelle Spring MVC) semble juste être un méga, "faites tout, y compris l'évier de cuisine", type de cadre qui m'a semblé énorme et lourd quand j'ai commencé à évaluer Spring (et Spring MVC). Aujourd'hui, le printemps ne me semble pas se concentrer sur une seule chose. A l'origine je pense que c'était simplement un cadre d'injection de dépendance mais il a rapidement grandi pour essayer d'être tout pour tout le monde et la simplicité était perdu.
Les livres que J'ai lus sur Spring avaient des exemples qui contenaient beaucoup trop de configuration XML. Les erreurs dans les fichiers de configuration XML sont beaucoup plus difficiles à déboguer et à corriger que les erreurs dans le code java que vous pouvez parcourir avec votre débogueur.
Quel est le problème avec la déclaration de choses dans le code Java au lieu de XML de toute façon? Depuis quand quelqu'un a-t-il décrété que tout devrait être déclaré en XML de toute façon. Si vous aimez nager dans une mer de fichiers de configuration XML complexes, allez avec Spring. Si vous aimez obtenir le travail effectué et être productif puis aller avec guichet.
Wicket est très concentré sur le fait d'être le meilleur framework D'interface utilisateur basé sur Java pour le développement d'applications web. Il n'essaie pas de vous verrouiller dans un cadre d'injection de dépendance particulier ou un cadre de persistance particulier (utilisez-le avec JDO/JPA, DataNucleus, Hibernate, peu importe).
Son focus est clairement sur L'interface utilisateur mais vous pouvez utiliser n'importe quel framework d'injection de dépendance que vous aimez (vous n'avez pas besoin d'utiliser le DI de Spring avec mais vous pouvez si vous voulez). Nous utilisons même notre propre DI ( http://www.expojo.com ) avec guichet et tout est funky.
Le printemps est plus global que le guichet.
Wicket est un framework Java Web UI. Spring en a également un, ainsi que des modules de persistance, d'accès distant, de sécurité, de messagerie, etc.
Spring est construit sur l'injection de dépendance et L'AOP. Wicket a ni.
Je n'ai pas utilisé, mais c'est censé être simple. Je ne peux pas dire si le printemps est plus facile ou plus difficile.
Vous pouvez utiliser Spring à bon avantage dans beaucoup de situations en plus des applications web.
Vous pouvez lire les avantages de L'utilisation de Wicket dans le premier chapitre gratuit de Wicket In Action: http://www.manning.com/dashorst/
En bref, Wicket est un excellent framework lorsque l'application que vous développez est relativement complexe, vous voulez qu'elle soit maintenable, capable de faire évoluer l'équipe et de profiter de la réutilisation. La programmation orientée objet s'est avérée être un paradigme très utile pour la programmation D'interfaces utilisateur, mais malheureusement, la plupart des frameworks Java pour le développement web les applications, y compris Spring MVC, ne supportent qu'un modèle de programmation très procédural où elles marquent le terme MVC pour le rendre cool (mais en fait, puisque la granularité qu'elles supportent sont des allers-retours demande/ réponse plutôt que des widgets autonomes, MVC est vraiment trompeur).
La partie DI Du printemps est grande, et est quelque chose que vous pouvez facilement utiliser avec Wicket.
Je suis d'accord avec les réponses fournies jusqu'à présent. Ce qui n'a pas été mentionné sont les points suivants, qui sont une conséquence de L'approche de Wicket de développement d'applications web axé sur le code Java: -
- le développement de guichet n'implique pas l'écriture de JSP.
- Les composants AJAX peuvent être développés sans impliquer L'écriture de Javascript.
Je n'ai rencontré aucun autre framework qui adopte cette approche centrée sur Java. Tous les autres que j'ai utilisés (Struts, Spring) impliquer le développement JSP.
Pour moi, un gros avantage de Wicket est L'accent mis sur Java et la disponibilité d'outils d'environnement de développement riches comme Eclipse. Aussi la séparation très propre de la logique métier des aspects de présentation de l'application.
Quelques avantages du guichet que j'aime:
- simplicité-la courbe D'apprentissage est petite, surtout si vous êtes de L'école Swing.
- séparation propre des préoccupations-web designer n'a pas besoin d'en savoir beaucoup sur les codes.
-
Facilité de déploiement.
Voici mon blog pour montrer les codes hello world dans Wicket
Spring vous donne le modèle de conception MVC uniquement au niveau de la page - un niveau de granularité très grossier en effet. Wicket, en revanche, vous donne le modèle de conception MVC au niveau des composants individuels (autant que Swing offre pour la programmation client fat). Avec Spring MVC, toutes les données d'un formulaire sont globales à l'ensemble du servlet frontal, il n'y a donc pas beaucoup de possibilités de masquage d'informations, de couplage lâche ou de cohésion étroite. Avec Portillon, votre logique d'affichage peut être beaucoup plus modulaire -- les données géré par componentA n'a pas besoin d'être visible pour le code de componentB.
Le plus petit niveau de granularité rend beaucoup plus facile la réutilisation du code d'affichage sur un certain nombre de pages Web différentes ou même sur des applications web.
En outre, comme la configuration des composants se fait en Java plutôt QU'en XML, ils peuvent être configurés à la volée au moment de l'exécution, ce qui augmente considérablement la puissance et la flexibilité (contrairement à la plupart des autres frameworks orientés composants tels que ASP.NET formulaires Web ou Java Server Faces).
Un autre avantage de Wicket par rapport aux autres frameworks Web java populaires est qu'il vous permet de créer des applications web modulaires et extensibles. Ceci est particulièrement utile lorsque vous concevez un produit basé sur le web, que vous avez l'intention d'étendre en ajoutant des fonctionnalités supplémentaires et des pages sous forme de plugins au moment du déploiement, et en éliminant l'impact sur la fonctionnalité/source de base de votre produit. Voici un très bon article sur il.