Struts est un framework pour l'utilisation dans une application web J2EE qui essaie de fournir des applications web avec un MVC-modèle basé sur l'approche de codage. Il inclut des utilitaires supplémentaires pour le formulaire de validation des données, etc. C'est un projet open source, et a été très bon à la résolution de ce morceau particulier de l'application web de puzzle, et est limitée à la résolution de cette pièce en particulier.
ATG (ATG Dynamo), d'autre part, est une application de la plate - forme d'une solution et d'un cadre pour la construction de données de contenus et d'applications web en fonction essentiellement du commerce et de l'édition. Au niveau du cadre, c'est une application Java plate-forme pour l'hébergement d'applications basées sur le web, ainsi que RMI accessibles composants, avec un ORM couche, un composant conteneur, un framework MVC, et un ensemble de bibliothèques de balises JSP. Le composant framework (Le Noyau) est un conteneur léger de la gestion du cycle de vie, la dépendance et de liaison (dependency injection) de composant Java des objets (des haricots). En ce sens, il est un peu comme le Printemps récipient à grains, et est au cœur de l'ATG cadre - tous les autres services et cadres a accueilli en son sein. L'ORM de la couche de cadre (Référentiels) cartes de des objets vers et à partir de bases de données relationnelles (comme vous vous en doutiez). Mais il peut aussi les poignées de cartographie avec LDAP, XML et les données du système de fichiers ources en utilisant le même souci de l'accès aux données de l'API. Les balises JSP pour la liaison des éléments de formulaire sur une page pour les valeurs de business objects, etc. sont plus élégants et plus propre que le formulaire de liaison des balises dans tout autre cadre que j'ai vu. Le mécanisme de l'écriture de votre propre bibliothèque de balises équivalents (Gouttelettes) est beaucoup plus compatible avec la Servlet API que la norme J2EE balises.
Le framework MVC (la Forme de base du gestionnaire de modèle) est quelque peu semblable à Struts Forme et les classes d'Action - mais offre beaucoup plus de cadre de base qui se Pavane. Hors de la boîte, et au niveau de la plupart des développeurs de travail, l'ATG modèle de page-pas de contrôleur. En interne, il est certainement un contrôleur de conduite avec un pipeline approche enchaînant les répartiteurs et les contrôleurs.
En outre, le cadre au niveau de base vous donne un RMI conteneur, la mise en cache distribuée, distribué verrouillage et distribué des singletons, distribué des événements et de la messagerie, un planificateur de tâches, un moteur de règles et un mécanisme pour définir les flux d'affaires personnalisée avec des actions et des résultats, un éditeur graphique pour les flux de production, de support pour des données versionnées, prise en charge des rôles et des droits, de journalisation et d'audit, tous hors de la boîte, et le tout en utilisant très cohérente Api
Puis au niveau de la solution, vous avez les composants et les Api pour traiter avec le profil des usagers, la gestion de l'identité et de la personnalisation, création de contenu, de gestion de version et de l'édition, de la recherche de contenu, des catalogues de produits pour corporels et incorporels, des marchandises, des produits de recherche et de navigation guidée, les prix, le calcul de l'impôt, des promotions, des paniers d'achat, le don des listes et des listes de souhaits, les types de paiement, modes de livraison, suivi de commande, gestion de la relation client etc.
Les points d'extension et de points d'intégration de l'ATG sont généralement très bien conçu et très bien documenté. Ils prennent en charge l'intégration avec à peu près toute personne qui est n'importe qui dans le e-commerce et de la publication de l'espace pour des choses comme la création et la gestion de contenu, de gestion de l'identité et de la sécurité, des catalogues de produits, de recherche et de navigation guidée etc. Aussi, presque tous les domaines du cadre sont extensibles et plug-pignon de sorte que vous pouvez écrire vos propres composants pour améliorer ou remplacer ceux de la boîte.
Il ne fait pas vraiment beaucoup de sens de comparer les deux. Toutefois, compte tenu de votre question, j'imagine que ce qui vous intéresse vraiment est le MVC le cadre de l'ATG
Pour MVC, Struts vous donne plus que de l'ATG (mais alors, Spring MVC, vous donne encore plus de Struts). Cependant, vous avez tendance à s'enliser dans le fonctionnement du cadre beaucoup plus avec Struts qu'avec de l'ATG.
Personnellement, je pense que l'ATG du formulaire de gestionnaire de base du modèle est plus élégant, plus propre et plus facile à travailler que la plupart des autres web MVC cadres que j'ai vu, et les Api sont plus compatibles avec l'Api Servlet.
Garder à l'esprit, aussi, que la plupart des web-MVC, frameworks ne sont pas comme de vrais MVC (c'est à dire le modèle utilisé pour l'interface graphique de programmation en Smalltalk ou même Java Swing, etc.). Ni Struts, ni ATG fournir (comme prévu) vrai MVC - si ATG s'agit en réalité de plus près. Il y a beaucoup de confusion au sujet de la terminologie.
Par exemple,
le Model en vrai MVC n'est pas votre modèle de données ni vos objets du modèle de domaine. C'est le modèle qui représente toutes les données dans une vue. Si cela arrive à être un modèle du domaine de l'objet, puis bien - mais le plus souvent, vous trouverez que vous avez besoin d'un jeu différent de la vue ou de la forme des objets. Aussi, le modèle est chargé de tenir à jour - c'est le Modèle qui interagit avec les services d'affaires inférieur vers le bas. ATG a tendance à fusionner le modèle et le contrôleur dans un seul composant - le formulaire de gestionnaire. Struts tend à maintenir le point de vue du modèle de données distinctes (la forme de l'objet), mais ne pas encourager son utilisation comme un modèle dans le vrai MVC sens - ce n'est pas la forme de l'objet qui interagit avec d'autres entreprises de services à la maintenir à jour.
le Controller MVC n'est pas votre métier de contrôleur. Un contrôleur MVC est un intermédiaire entre le modèle et la vue. Il réagit aux changements dans la vue, ou à des actions effectuées sur le point de vue, et indique le modèle de mise à jour en conséquence. En jambes de suspension, le Contrôleur ils parlent n'est pas un contrôleur MVC - c'est vraiment un répartiteur. Une grande partie du code qui appartient à un contrôleur se retrouve dans votre classe d'Action. Mais la façon dont Struts est conçu, la classe d'Action est vraiment le but de faire ce qu'un Modèle ne.
le View MVC doit être rempli par le modèle - c'est une poussée mécanisme avec le modèle de mise à jour de la vue, et non pas d'un mécanisme d'attraction avec le point de vue de l'interrogation du modèle. Dans la plupart des web-MVC cadres, la vue (généralement une JSP) tire état du modèle afin d'écran lui-même. C'est notamment le cas avec l'ATG de la page. Si vous trouvez que les données sont extraites lors de votre page est rendu il signifie que quelque chose est incorrect avec votre MVC conception.
Dans Struts, la fonction de Contrôleur MVC est répandu à travers le contrôleur Struts et de l'Action, tandis que la fonction du Modèle MVC est répandu à travers la Forme de l'objet et de l'Action.
En ATG, la fonction de la MVC Contrôleur et le Modèle MVC est tous dans le Formulaire de gestionnaire
Après avoir dit que, en raison de la demande-réponse de la nature de HTTP, de la fonction de Contrôleur dans une web-framework MVC est assez limité. Avec des applications web, nous avons tendance à obtenir un complètement mis à jour à afficher sur le formulaire de soumission plutôt que plein de petits changements (par exemple, appuyez sur une touche ou un clic de souris, ou chaque changé champ de saisie) comme on le ferait avec une INTERFACE utilisateur riche cadre. L'utilisation d'AJAX est en train de changer - et nous avons à penser beaucoup plus au sujet de la mise en œuvre de MVC correctement.
Rappelez-vous, MVC est un modèle de conception - c'est une conception du principe du temps à être utilisés lors de la conception de l'interface graphique aspect d'applications. Jambes de force, et ATG sont des cadres - dire qu'ils sont les classes et les objets à être étendu, mis en œuvre ou configuré lors de la construction de votre application. Un cadre ne peut pas imposer l'utilisation d'un modèle de conception - il ne peut que l'encourager. Le choix d'utiliser un cadre particulier ne sera pas de faire de la conception de votre ciode mieux au plus, elle peut encourager une certaine discipline.
Si vous concevez votre MVC bien, il ne fera pas une grande différence si vous utilisez des Entretoises ou des classes de l'ATG classes pour la mettre en œuvre. De même, si la conception de votre MVC mal, en espérant que votre choix de cadre de combler vos lacunes, il ne fera pas une grande différence si vous utilisez des Entretoises ou de l'ATG. Si vous comprendre et de travailler avec les principes de conception, vous trouverez qu'il est très facile de basculer entre les cadres.
Le meilleur code sera celui qui adhère à un bon principe de conception (par exemple, vrai MVC) dans l'abstrait, et la met en œuvre (réalise) à l'aide de le droit outils disponibles dans le cadre de la façon dont ils sont destinés à être utilisés.
De revenir à votre question;
Si vous travaillez sur un ATG projet, vous devez utiliser les cadres que l'ATG fournit. Il est certainement possible de chausse-pied Struts dans un ATG demande - je l'ai fait moi-même il y a plusieurs années - mais il est beaucoup plus d'effort qu'il vaut la peine - et vous êtes beaucoup de ce que l'ATG fournit de la zone en termes d'objet de gestion du cycle de vie, la forme de la liaison de données, etc..
Si vous êtes sur le point de commencer à travailler sur un nouveau projet et de disposer d'un choix de cadres à utiliser, je recommande personnellement une application open source de serveur (comme JBoss) et le Framework Spring - il vous donne le meilleur de ce que l'ATG et les jambes de suspension offrent. Il dispose d'un Noyau comme composant conteneur (le Contexte de l'Application), il s'intègre avec toutes les bonnes ORM solutions (telles que la mise en veille) et comprend un framework MVC qui à mon avis a éclipsé de jambes de force. En outre, je vous recommande de regarder Spring Web flow au niveau supérieur du GUI de flux de conception.
9
La principale différence dans le royaume-UNI est que comme un ATG entrepreneur, vous pouvez obtenir une valeur de 500 euros par jour, mais en général Struts gars vous avez de la chance d'obtenir £350.
Pas que je suis amertume à tous les.
0
ATG est un logiciel propriétaire... et les ressources sont moins ...
Struts est un framework pour l'utilisation dans une application web J2EE qui essaie de fournir des applications web avec un MVC-modèle basé sur l'approche de codage. Il inclut des utilitaires supplémentaires pour le formulaire de validation des données, etc. C'est un projet open source, et a été très bon à la résolution de ce morceau particulier de l'application web de puzzle, et est limitée à la résolution de cette pièce en particulier.
ATG (ATG Dynamo), d'autre part, est une application de la plate - forme d'une solution et d'un cadre pour la construction de données de contenus et d'applications web en fonction essentiellement du commerce et de l'édition. Au niveau du cadre, c'est une application Java plate-forme pour l'hébergement d'applications basées sur le web, ainsi que RMI accessibles composants, avec un ORM couche, un composant conteneur, un framework MVC, et un ensemble de bibliothèques de balises JSP. Le composant framework (Le Noyau) est un conteneur léger de la gestion du cycle de vie, la dépendance et de liaison (dependency injection) de composant Java des objets (des haricots). En ce sens, il est un peu comme le Printemps récipient à grains, et est au cœur de l'ATG cadre - tous les autres services et cadres a accueilli en son sein. L'ORM de la couche de cadre (Référentiels) cartes de des objets vers et à partir de bases de données relationnelles (comme vous vous en doutiez). Mais il peut aussi les poignées de cartographie avec LDAP, XML et les données du système de fichiers ources en utilisant le même souci de l'accès aux données de l'API. Les balises JSP pour la liaison des éléments de formulaire sur une page pour les valeurs de business objects, etc. sont plus élégants et plus propre que le formulaire de liaison des balises dans tout autre cadre que j'ai vu. Le mécanisme de l'écriture de votre propre bibliothèque de balises équivalents (Gouttelettes) est beaucoup plus compatible avec la Servlet API que la norme J2EE balises.
Le framework MVC (la Forme de base du gestionnaire de modèle) est quelque peu semblable à Struts Forme et les classes d'Action - mais offre beaucoup plus de cadre de base qui se Pavane. Hors de la boîte, et au niveau de la plupart des développeurs de travail, l'ATG modèle de page-pas de contrôleur. En interne, il est certainement un contrôleur de conduite avec un pipeline approche enchaînant les répartiteurs et les contrôleurs.
En outre, le cadre au niveau de base vous donne un RMI conteneur, la mise en cache distribuée, distribué verrouillage et distribué des singletons, distribué des événements et de la messagerie, un planificateur de tâches, un moteur de règles et un mécanisme pour définir les flux d'affaires personnalisée avec des actions et des résultats, un éditeur graphique pour les flux de production, de support pour des données versionnées, prise en charge des rôles et des droits, de journalisation et d'audit, tous hors de la boîte, et le tout en utilisant très cohérente Api
Puis au niveau de la solution, vous avez les composants et les Api pour traiter avec le profil des usagers, la gestion de l'identité et de la personnalisation, création de contenu, de gestion de version et de l'édition, de la recherche de contenu, des catalogues de produits pour corporels et incorporels, des marchandises, des produits de recherche et de navigation guidée, les prix, le calcul de l'impôt, des promotions, des paniers d'achat, le don des listes et des listes de souhaits, les types de paiement, modes de livraison, suivi de commande, gestion de la relation client etc.
Les points d'extension et de points d'intégration de l'ATG sont généralement très bien conçu et très bien documenté. Ils prennent en charge l'intégration avec à peu près toute personne qui est n'importe qui dans le e-commerce et de la publication de l'espace pour des choses comme la création et la gestion de contenu, de gestion de l'identité et de la sécurité, des catalogues de produits, de recherche et de navigation guidée etc. Aussi, presque tous les domaines du cadre sont extensibles et plug-pignon de sorte que vous pouvez écrire vos propres composants pour améliorer ou remplacer ceux de la boîte.
Il ne fait pas vraiment beaucoup de sens de comparer les deux. Toutefois, compte tenu de votre question, j'imagine que ce qui vous intéresse vraiment est le MVC le cadre de l'ATG
Pour MVC, Struts vous donne plus que de l'ATG (mais alors, Spring MVC, vous donne encore plus de Struts). Cependant, vous avez tendance à s'enliser dans le fonctionnement du cadre beaucoup plus avec Struts qu'avec de l'ATG.
Personnellement, je pense que l'ATG du formulaire de gestionnaire de base du modèle est plus élégant, plus propre et plus facile à travailler que la plupart des autres web MVC cadres que j'ai vu, et les Api sont plus compatibles avec l'Api Servlet.
Garder à l'esprit, aussi, que la plupart des web-MVC, frameworks ne sont pas comme de vrais MVC (c'est à dire le modèle utilisé pour l'interface graphique de programmation en Smalltalk ou même Java Swing, etc.). Ni Struts, ni ATG fournir (comme prévu) vrai MVC - si ATG s'agit en réalité de plus près. Il y a beaucoup de confusion au sujet de la terminologie.
Par exemple,
le Model en vrai MVC n'est pas votre modèle de données ni vos objets du modèle de domaine. C'est le modèle qui représente toutes les données dans une vue. Si cela arrive à être un modèle du domaine de l'objet, puis bien - mais le plus souvent, vous trouverez que vous avez besoin d'un jeu différent de la vue ou de la forme des objets. Aussi, le modèle est chargé de tenir à jour - c'est le Modèle qui interagit avec les services d'affaires inférieur vers le bas. ATG a tendance à fusionner le modèle et le contrôleur dans un seul composant - le formulaire de gestionnaire. Struts tend à maintenir le point de vue du modèle de données distinctes (la forme de l'objet), mais ne pas encourager son utilisation comme un modèle dans le vrai MVC sens - ce n'est pas la forme de l'objet qui interagit avec d'autres entreprises de services à la maintenir à jour.
le Controller MVC n'est pas votre métier de contrôleur. Un contrôleur MVC est un intermédiaire entre le modèle et la vue. Il réagit aux changements dans la vue, ou à des actions effectuées sur le point de vue, et indique le modèle de mise à jour en conséquence. En jambes de suspension, le Contrôleur ils parlent n'est pas un contrôleur MVC - c'est vraiment un répartiteur. Une grande partie du code qui appartient à un contrôleur se retrouve dans votre classe d'Action. Mais la façon dont Struts est conçu, la classe d'Action est vraiment le but de faire ce qu'un Modèle ne.
le View MVC doit être rempli par le modèle - c'est une poussée mécanisme avec le modèle de mise à jour de la vue, et non pas d'un mécanisme d'attraction avec le point de vue de l'interrogation du modèle. Dans la plupart des web-MVC cadres, la vue (généralement une JSP) tire état du modèle afin d'écran lui-même. C'est notamment le cas avec l'ATG de la page. Si vous trouvez que les données sont extraites lors de votre page est rendu il signifie que quelque chose est incorrect avec votre MVC conception.
Dans Struts, la fonction de Contrôleur MVC est répandu à travers le contrôleur Struts et de l'Action, tandis que la fonction du Modèle MVC est répandu à travers la Forme de l'objet et de l'Action.
En ATG, la fonction de la MVC Contrôleur et le Modèle MVC est tous dans le Formulaire de gestionnaire
Après avoir dit que, en raison de la demande-réponse de la nature de HTTP, de la fonction de Contrôleur dans une web-framework MVC est assez limité. Avec des applications web, nous avons tendance à obtenir un complètement mis à jour à afficher sur le formulaire de soumission plutôt que plein de petits changements (par exemple, appuyez sur une touche ou un clic de souris, ou chaque changé champ de saisie) comme on le ferait avec une INTERFACE utilisateur riche cadre. L'utilisation d'AJAX est en train de changer - et nous avons à penser beaucoup plus au sujet de la mise en œuvre de MVC correctement.
Rappelez-vous, MVC est un modèle de conception - c'est une conception du principe du temps à être utilisés lors de la conception de l'interface graphique aspect d'applications. Jambes de force, et ATG sont des cadres - dire qu'ils sont les classes et les objets à être étendu, mis en œuvre ou configuré lors de la construction de votre application. Un cadre ne peut pas imposer l'utilisation d'un modèle de conception - il ne peut que l'encourager. Le choix d'utiliser un cadre particulier ne sera pas de faire de la conception de votre ciode mieux au plus, elle peut encourager une certaine discipline.
Si vous concevez votre MVC bien, il ne fera pas une grande différence si vous utilisez des Entretoises ou des classes de l'ATG classes pour la mettre en œuvre. De même, si la conception de votre MVC mal, en espérant que votre choix de cadre de combler vos lacunes, il ne fera pas une grande différence si vous utilisez des Entretoises ou de l'ATG. Si vous comprendre et de travailler avec les principes de conception, vous trouverez qu'il est très facile de basculer entre les cadres.
Le meilleur code sera celui qui adhère à un bon principe de conception (par exemple, vrai MVC) dans l'abstrait, et la met en œuvre (réalise) à l'aide de le droit outils disponibles dans le cadre de la façon dont ils sont destinés à être utilisés.
De revenir à votre question;
Si vous travaillez sur un ATG projet, vous devez utiliser les cadres que l'ATG fournit. Il est certainement possible de chausse-pied Struts dans un ATG demande - je l'ai fait moi-même il y a plusieurs années - mais il est beaucoup plus d'effort qu'il vaut la peine - et vous êtes beaucoup de ce que l'ATG fournit de la zone en termes d'objet de gestion du cycle de vie, la forme de la liaison de données, etc..
Si vous êtes sur le point de commencer à travailler sur un nouveau projet et de disposer d'un choix de cadres à utiliser, je recommande personnellement une application open source de serveur (comme JBoss) et le Framework Spring - il vous donne le meilleur de ce que l'ATG et les jambes de suspension offrent. Il dispose d'un Noyau comme composant conteneur (le Contexte de l'Application), il s'intègre avec toutes les bonnes ORM solutions (telles que la mise en veille) et comprend un framework MVC qui à mon avis a éclipsé de jambes de force. En outre, je vous recommande de regarder Spring Web flow au niveau supérieur du GUI de flux de conception.
La principale différence dans le royaume-UNI est que comme un ATG entrepreneur, vous pouvez obtenir une valeur de 500 euros par jour, mais en général Struts gars vous avez de la chance d'obtenir £350.
Pas que je suis amertume à tous les.
ATG est un logiciel propriétaire... et les ressources sont moins ...