|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
![]() ![]() Inscription : avril 2005 Messages : 317 ![]() |
J'ai entendu dire beaucoup de bien de Seam et à la lecture du tutorial Seam, je commence effectivement à trouver ce framework pas mal du tout.
Toutefois, l'architecture Seam me surprend Dans le monde j2ee, on est quand même habitué à une séparation des couches (ihm <-> service <-> dao et notament à présence de la couche service que je trouve indispensable. Or dans les exemples du tutoriel, je ne retrouve pas la couche service Je n'en suis qu'au début de mon apprentissage de Seam mais la déjà je bloque sur le principe... |
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : octobre 2004 Messages : 4 678 ![]() |
Bonjour et
pour avoir évoqué ce point de détail là!Tu as osé dire tout haut ce que je pensais dans mon for intérieur ... Bref, moi aussi je me trouve dans la même situation. Je suis en train de me battre avec Spring 2.5 pour faire fonctionner Tomcat / Toplink / JPA / JSF dans une même application et je n'y arrive toujours pas. J'avais entendu parler de Seam et de comment il simplifiait tout ça, mais ce qui me bloquait était justement la non-séparation des taches qu'il prone (IMHO). Un ténor de Seam peut-il éclairer nos lanternes ?
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : novembre 2007 Messages : 1 ![]() |
je viens de commencer à lire la documentation de référence de seam, que je trouve bien jusqu'à présent, pour le petit blem que vous avez remonté, à mon avis , on peut toujours utiliser une couche itérmédiaire pour les service, en utilisant des sessionbean ou autre, que tu invoque depuis l'action.
|
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : avril 2005 Messages : 317 ![]() |
oui certainement qu'on peut rajouter la couche service mais ce que je trouve malheureux c'est que ce ne soit pas par défaut dans les exemples
De plus, le module Seam Gen que je trouve d'ailleurs assez impressionnant, n'inclut pas non plus de couche service. Ce qui gache un peu quand même |
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : novembre 2007 Messages : 50 ![]() |
Seam s'appuie en effet sur une architecture 2 tiers. Exit donc la couche services !
J'utilise depuis quelques jours maintenant Seam 2.0.0GA mais l'architecture me pose quelques problèmes. En effet Seam gen me génére un nouveau projet vierge avec deux répertoires sources Actions et Models. Mes beans Entites sont donc stockés dans le répertoire/package Models et mes actions, bean managés dans le répertoire Actions. Cependant j'ai des classes utilitaires comme le cryptage d'un mot de passe mais je ne sais pas ou les mettre !! Il ne s'agit pas ici d'un bean ni d'un bean entité .... Quelqu'un peut donc m'aider sur ce point ?? |
|
|
00
|
|
|
#6 | |
|
Membre éprouvé
![]() Inscription : janvier 2006 Messages : 352 ![]() |
Citation:
http://www.theserverside.com/tt/arti...sSeamFramework En tout cas, moi je ne vois pas ce qui dans l'architecture de Seam ferait penser qu'il n'y aurait pas de couche service, a priori, puisque les ejb constituent la couche métier, et dans tous les exemples Seam on parle des session beans. Donc je pense que ça dépend plutôt de l'architecture de sa propre application. |
|
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() Inscription : octobre 2003 Messages : 2 723 ![]() |
Salut tout le monde,
Je m'immisce dans la conversation pour donner mon avis sur le sujet. Je suis vraiment beaucoup plus plongé dans le monde de Spring, et je ne connais Seam que superficiellement. Je viens de lire les deux liens fournis dans ce fil de discussion en diagonale ( suite à un renvoi que djo.mos sur un autre thread Une chose qui me gène énormément : la configuration via des annotations. J'aime beaucoup avoir ma configuration dans des fichiers XML, et avoir des pojos simple pour mes différentes couches, ce que le "design" de Spring prône. Pourquoi vouloir à tout prix avoir des classes Java qui gère deux choses différentes ( configuration et logique ) ? Ensuite, peut-être que mon parcours des liens donnés était trop rapide, mais je confirme que je n'ai vu aucune mention à une quelconque "couche métier". Les objets dits "métiers" semblent être un mélange de DAO et de Service classiques. La séparation des couches est essentielle pour permettre une évolution facile vers d'autres framework de persistence sans perdre la logique métier. Hors là, je vois mal comment on pourrait le faire... Donc, pour résumé, voici ce que je pense de ma première vision rapide de Seam : Avantages : Inconvénients : peut-être qu'il faudra attendre un peu pour qu'avec le retour sur l'experience on voit de nouveaux patterns afin de bien gérer ce type de projet avec une meilleure séparation des couches.Donc dans l'ensemble, je dirais qu'il y a encore de la marge pour que je me fasse un avis sur la chose plus complet, lorsque j'aurais le temps de le tester et de voir ce que ça donne, mais pour l'instant, je n'ai pas trop l'intention d'abandonner mon bon vieux Spring A+
__________________
K |
|
|
00
|
|
|
#8 |
|
Membre éprouvé
![]() Inscription : janvier 2006 Messages : 352 ![]() |
Moi aussi j'utilise beaucoup Spring dans mes applications, et je dois dire que la première fois que j'ai lu quelques lignes sur JBoss Seam, la première chose qui m'est venue à l'esprit c'est de me dire : "tiens, il s'avance sur le terrain de Spring, ce Seam !!", ce qui m'a amené entre autres à lire ce débat ici : http://www.weiqigao.com/blog/2005/10...titor_now.html
Mais pour tenter de répondre un peu aux critiques formulées par KiLVaiDeN, concernant les annotations, je crois que c'est une vaste question qui ne concerne pas que Seam, et on ne peut y échapper, même Spring s'y met aussi. Je ne configure plus ma gestion de transactions dans Spring qu'avec @Transactional, et c'est vraiment très pratique, plutôt que d'avoir à tout écrire dans le fichier XML. Plus l'application est de grande taille et plus les fichiers xml deviennent compliqués à gérer et peuvent ralentir le développement. Les annotations sont un grand bond en avant pour le développeur, mais en même temps elles réduisent la flexibilité apportée par une configuration xml qui permet de modifier le comportement d'un composant au déploiement. Mais heureusement que dans Java EE 5 rien n'empêche d'avoir les deux, la config xml "surpassant" celle de l'annotation. D'autre part, Seam ne nécessite pas un serveur d'applications, l'installation est possible sur Tomcat, mais n'ayant rien testé encore, je ne sais pas si c'est plus compliqué que pour Spring. Enfin, pour ce qui est de la couche service, je n'arrive pas à voir où est le problème. Si je devais faire une application Spring intégrant des EJB, j'aurais exactement la même architecture que si je devais utiliser Seam à la place de Spring, et ma couche EJB constituerait bien la couche service. C'est moi qui décide de l'architecture de mon application, et ensuite j'utilise un framework qui me permet d'intégrer plus facilement les différentes couches avec toutes les fonctionnalités qu'elles offrent. Et d'après ce que j'ai compris jusque-là, Seam me permet de le faire autant que Spring. La seule chose que je reproche à Seam, c'est cette fixation pour l'instant sur JSF comme framework de présentation, alors que moi je préférerais rester à Struts2, par exemple, mais je crois que ça devrait intégrer d'autres framework également à l'avenir, si ce n'est pas déjà fait. |
|
|
00
|
|
|
#9 | ||
![]() ![]() Inscription : avril 2005 Messages : 317 ![]() |
Citation:
Citation:
|
||
|
00
|
|
|
#10 |
|
Futur Membre du Club
![]() Inscription : novembre 2007 Messages : 50 ![]() |
J'utilise maintenant Seam depuis quelques jours, mais je me pose encore des questions quant à l'architecture. Dans le projet que me génére Seam Gen, je place des EJB Stateless et Stateful dans le répertoire "Src/Action" et mes beans Entités dans le repertoire "Src/Model".
Cependant j'ai des classes utilitaires mais je ne sais pas ou les mettre. Biensur je pourrai les mettre dans le répertoire "Src/Action" avec les EJB mais çà ne me semble pas cohérent. Quelqu'un de confirmé peut-il répondre à ce problème ? Merci à vous |
|
|
00
|
|
|
#11 |
|
Membre chevronné
![]() Inscription : janvier 2007 Messages : 731 ![]() |
N'hésitez pas à consulter l'excellent livre : http://www.michaelyuan.com/blog/seam...web-framework/ |
|
|
00
|
|
|
#12 |
|
Futur Membre du Club
![]() Inscription : novembre 2007 Messages : 50 ![]() |
Je me trompe peut être mais la couche "Services" correspond aux EJB3 ?
D'après la documentation, Seam permettrait de rapprocher la couche applicative (JSF) et la couche services (EJB3). De ce fait, il n'y a plus d'intérêt à partir sur une architecture en 3 couches .. dans ce cas là, autant partir sur Tapestry, Spring et Hibernate. Seam me semble en revanche très complexe à mettre en place. Je suis partie sur un projet généré par Seam Gen ... Mon but étant de développer un site de vente en ligne, j'aimerais partir sur une architecture clean. XmasRock je rebondis sur ce que tu dis ... En effet "seam gen" se base sur des templates mais ce ne sont rien d'autres que des Facelets .... Quelqu'un a-t-il un exemple d'architecture de projet Seam mais non généré avec "Seam gen" ? Tous les exemples qui sont livrés avec Seam se basent sur "Seam Gen" .... Merci à vous tous pour votre soutient... |
|
|
00
|
|
|
#13 | ||||
|
Membre chevronné
![]() Inscription : janvier 2007 Messages : 731 ![]() |
Citation:
Citation:
Citation:
Citation:
|
||||
|
|
00
|
|
|
#14 |
|
Expert Confirmé
![]() Inscription : octobre 2003 Messages : 2 723 ![]() |
Est-ce que Seam fonctionne uniquement sur JBoss ou il est portable sur n'importe quel serveur J2EE ? Excuse moi si la question est évidente, mais elle est suffisament importante pour savoir si s'engager dans Seam est équivalent à signer un pacte avec JBoss
__________________
K |
|
|
00
|
|
|
#15 | ||
|
Membre chevronné
![]() Inscription : janvier 2007 Messages : 731 ![]() |
Citation:
Citation:
|
||
|
|
00
|
|
|
#16 | |
|
Futur Membre du Club
![]() Inscription : novembre 2007 Messages : 50 ![]() |
Citation:
En fait j'ai déjà commencé à développer mon appli Ecommerce en attaquant la partie Authentification. Ma question première concernait le cryptage d'un mot de passe. Je me demandais à quel niveau je pouvais stocker mes classes. Mais je pense avoir la réponse !!! Je vais me faire un petit fichier jar que je vais intégrer à mon projet !! As tu déjà développé un petit projet avec Seam ? Moi j'en suis très content .... çà marche très bien et c'est très puissant ....
|
|
|
|
00
|
|
|
#17 |
|
Membre chevronné
![]() Inscription : janvier 2007 Messages : 731 ![]() |
ce que j'aime, c'est la panoplie de truc prêt à l'emploi et puissants
Pour la secu, tu as vu le chapitre 13 ? |
|
|
00
|
|
|
#18 |
|
Futur Membre du Club
![]() Inscription : novembre 2007 Messages : 50 ![]() |
Oui j'ai vu le chapitre 13 comme le reste de la doc ... pourquoi j'aurais loupé quelque chose sur le cryptage de chaines ?
|
|
|
00
|
|
|
#19 |
|
Membre chevronné
![]() Inscription : janvier 2007 Messages : 731 ![]() |
non, c'est juste qu'il y a plein de trucs sympas pour la sécu et que ce serait dommage de passer à coté
|
|
|
00
|
|
|
#20 | |
|
Membre à l'essai
![]() Inscription : juin 2007 Messages : 19 ![]() |
Bon je vais donner mon avis :
Sur la question des couches. Je pense plutôt que c'est la couche contrôleur qui est absente par défaut (ou bien confondu avec la notion de service), effectivement, comme quelqu'un l'a fait remarquer, les EJB session jouent le rôle de classes de service. De plus je n'ai pas en tête de framework ou combinaison de framework dont l'utilisation implique de séparation en trois couche. Pour ma part je développe beaucoup d'application Struts(1/2) / Spring / Hibernate, rien ne m'empêche de fusionner les couches mes actions Struts peuvent très bien réaliser les tâches métiers et accéder la couche de persistance. Et puis pour pousser mon raisonnement à l'extrême (de sa stupidité) on peut bien mélanger JSP et couches de persistance. Enfin, ce genre de remarque s'applique plus à JSF qu'à Seam à mon avis. C'est la liberté fournie pour l'implémentation des backing beans qui laisse le développeur se débrouiller. En ce qui concerne Seam-gen. Je crois qu'il ne faut pas essayer de le détourner de son but. De mon point de vue seam-gen est un quickstart pour démarrer une appli web qui fait du CRUD. C'est à mon sens un cas d'utilisation simple avec une valeur ajoutée nulle du développeur. Pour une application aussi simple, pourquoi vouloir à tout prix appliquer le pattern MVC ? Sur la question de la portabilité du framework. Là tout n'est pas rose, si beaucoup de choses ont été faites avec la version 2, notamment pour l'utilisation de Tomcat et Hibernate, il y a encore des manques, des choses que l'on peut faire avec JPA et EJB et qui ne marchent pas avec Hibernate. Voici un lien qui décrit quelques configurations qui marchent ou pas http://www.michaelyuan.com/blog/2007...ation-servers/ Les annotations. Pour ceux chez qui les annotations provoquent des cauchemar Spring et Seam. Je ne pense pas que Spring et Seam s'excluent mutuellement. Je pense que Spring est d'une très (très (très)) grande richesse et que Seam apporte d'autres moyens d'intégration de certains framework (drools, jBPM, etc ...) ainsi que la notion de Statefull. Bien sûr, les deux framework proposent certains outils concurrents (la gestion des transactions pour ne citer que cela), mais ils s'enrichissent mutuellement. Exemple 1 : avec Hibernate et Spring il est (me semble-t-il) plus simple de récupérer le transaction manager du serveur d'applis J2EE qu'avec Seam. Exemple 2 : Seam permet d'encapsuler les bean Spring pour leur donner la notion de Statefull. Pour finir je reprends la liste des avantages inconvénients énoncée précédemment. Citation:
Pour les annotations, comme je l'ai fait remarquer, ce n'est pas la seule manière de faire. Je pense que sur ce point les querelles de clocher ne sont pas les bienvenues. Certaines choses seront plus élégantes avec des annotations, d'autres seront moins complexes avec des fichiers de déclaration. Pour le côté J2EE de la chose, ça bouge beaucoup. Je n'ai pas spécialement de problème à faire tourner des applis avec Tomcat et Hibernate (surtout avec Seam v2). Il manque quelques bricoles, mais cela va changer dans les prochaines versions. David |
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com