IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GWT et Vaadin Java Discussion :

migration de struts vers GWT


Sujet :

GWT et Vaadin Java

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut migration de struts vers GWT
    bonjour à tous,
    je travaille actuellement en tant que stagiaire dans une entreprise, et le sujet de mon stage est justement de faire migrer un certain nombre d'applis web faites en struts et jsp (serveur d'aplli tomcat) vers une techno GWT.
    N'ayant aucune expérience du J2EE, j'ai commencé par lire des tutoriels toute la semaine sur les 2 technos en question, et je commence à comprendre comment cela fonctionne... pas trop non plus, c'est que 4 jours de boulot.. :oops:
    Ma question pour vous est la suivante, est-ce qu'il existe une methodologie connue pour effectuer une migration de façon générale? et pour du GWT en particulier?

    Par ailleurs, j'ai beaucoup lu les posts existant et je me pose la meme question qu'un certain nombre de personnes: est-ce que GWT suffit a lui tout seul a implémenter l'ensemble de l'appli, y compris le coté serveur?

    merci d'avance pour vos réponses :)

    ps: c'est mon premier post, youpi!

  2. #2
    Membre averti
    Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2007
    Messages : 301
    Points : 368
    Points
    368
    Par défaut
    GWT c'est uniquement le côté client. Le coté serveur reste géré de la même manière.

    Je ne connais pas de méthodologie pour faire la transition. Par contre elle ne sera pas évidente si l'application ne respecte pas l'architecture J2EE standard : présentation, business, dao.

    Si tu veux migrer vers GWT, il faut quasiment virer la partie présentation Struts et faire juste des petits controllers qui appelleront le business. Et pour la cliente avec GWT, tu vas devoir entièrement reprendre toutes les pages avec GWT en ajoutant les contrôles pour faire les appels RPC.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Points : 61
    Points
    61
    Par défaut
    Slt ,je pense que tout ce qui a été fait coté serveur ne sera pas perdu mais pour la partie cliente que tu veux faire en gwt tu vas devoir tout refaire.La manière de coder en gwt est différente de celle de struts .
    Mais il est toujours plus facile de reprendre du code qui a déjà fait sur une autre techno...

  4. #4
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    Les contrôleurs côté serveur sont à refaire, ce qui n'est pas une mince affaire. En outre, vu la techno tu ne dois pas avoir sous la main d'objets de transferts, ce qui veut dire qu'il va falloir que tu te paluche le bridge entre le domaine métier et présentation...

    Je parle même pas de la philosophie 'flow' de struts qu'il faut revoir pour l'intégrer dans un vision 'mono-page'...

    Bref, pour un travail de stagiaire c'est de la haute voltige !

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut ok ça sera pas evident.
    salut à tous,
    tous d'abord, merci pour vos encouragements

    bon j'ai compris que coté serveur, il faudra modifier les controles.

    par contre, excusez mon ignorance, mais je vois pas encore trés bien pourquoi toute la partie client sera a refaire, c'est vrai que j'en suit à comprendre l'architecture de la chose, mais quelqu'un pourrait-il me donner des exemples de raisons qui font que ces parties diffèrent dans les deux technos?

    Je sais, je l'ai pas choisit parce qu'il est facile ce stage, mais l'approche donnée au sujet est particuiliere: je doit me pencher sur la plus simple des applis (3 pages) et essayer de la faire migrer, et seulement ensuite tenter de donner des methodes generiques pour le reste, fort des enseignements de la premiere migration. C'est sur que cela sera difficile, mais il n'est pas dit que le résultat de l'étude au final ne soit que la migration est impossible ou trop couteuse. Tout ça en 4 mois, ça doit etre faisable quand même!
    Bref je dois faire de mon mieux, c'est mal engagé parce que je patauge vraiment dans struts là, tout conseil pour bien débuter ou bien approcher le probleme est le bienvenu

    merci à tous.

    ps: bientot, c'est moi qui répondrai au question des internautes

  6. #6
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    Jsp c'est une techno côté serveur, gwt coté client. Ca fait une grosse différence.

    En jsp, la construction de la page se fait côté serveur. Les controleurs invoquent les services et passent le résultat à la page qui l'exploitent pour se construire. Le résultat est retourné au navigateur.

    En gwt, les invocations se font directement du navigateur aux controleurs qui retournent les résultats. Et les résultats sont interprétés côté client.

    La philosophie est bien différente donc.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Points : 61
    Points
    61
    Par défaut
    Je connais pas bien struts mais comme le mode de fonctionnement de struts est beaucoup plus proche de jsf que je connais ,à mon avis les principes de migration sont pareil.J'ajoute sur ce que tommy a dit le fait qu'en gwt on parle plus de page mais tout es mis dans un module c'est d'ailleurs une des limites de gwt citée par benwit(http://www.developpez.net/forums/sho...d.php?t=564884).
    Pour revenir sur l'experience que j'ai eu sur une application que j'ai fait en gwt et en jsf.je t'explique une partie de mon application genre pour recupérer des articles présentes dans mon serveur .
    Comment je fait en jsf:
    je crée un bean et à partir de là je recupére la liste des articles je fait les traitement necessaires dans le bean.Et dans une page jsp je prend ma liste créé dans le bean que j'affiche à l'aide de balise.Donc tu vois bien le mécanisme.Ya une phase de contrôle et de traitement faite dans une classe java.Ensuite une vue qui sera ta page jsp où tu utilise le résultat du traitement de ton bean pour un affichage user.
    Je te joins le code de la page jsp qui a utilisé 6 classes java pour faire un affichage en accordion:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    <ice:panelGroup styleClass="componentBox"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:ice="http://www.icesoft.com/icefaces/component">
     
     
     
     
    						<ice:dataTable value="#{dragDropController.filesGroupRecordBeans}"
    							                   var="filesRecord"							                  
    							                  styleClass="tableau">
    							        <!-- contract/expand column -->
     
     
    							     <!-- Date Modified -->
    							     <ice:column style="#{filesRecord.bacgroundcolor};border-left: 1px solid #FFFFFF;border-right: 1px solid #FFFFFF;border-bottom: 1px solid #FFFFFF;">
     
    							          <ice:commandLink  actionListener="#{filesRecord.toggleSubGroupAction}">
    							         <ice:panelGroup styleClass="#{filesRecord.rowStyleClass}"       
    							         											 draggable="#{filesRecord.dragvaleur}"
    																	                dragListener="#{dragDropController.addShoppingCartItem}"
    																	                dragValue="#{filesRecord.inventory}"
    																	                dragOptions="dragGhost"
    																	                dragType="text"
    																	                dragMask="dragging,drag_cancel,hover_start,hover_end"
    																	                dropMask="dragging,drag_cancel,hover_start,hover_end"
    							                         style="width: 130px;">
     
     
    	     										<ice:outputText value="#{filesRecord.modified}"/>					
     
    							         </ice:panelGroup>
     
    							         <f:param name="intoryId" value="#{filesRecord.dragvaleur}" />
    							         </ice:commandLink>
    							     </ice:column>
    							     <!-- Size -->
     
    						</ice:dataTable>
     
    </ice:panelGroup>
    Comment je fait en GWT:
    je crée un panel et j'appel la liste d'article par un protocol RPC et tout ce qui est traitement est fait dans ce panel qui est ma vu si l'on veut pour ce traitement.Les deux approches sont très différentes l'une de l'autre.

    et le bout de code en gwt:Le txt est obtenu par simple appel au serveur gwt.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     JSONValue j= JSONParser.parse(txt);
    			JSONValue root= j.isObject().get("root");
    			JSONArray cats=root.isObject().get("categorie").isArray();
    			for(int i=0;i<cats.size();i++)
    				{
    					Panel panel= new Panel();
    					panel.setTitle(cats.get(i).isObject().get("nom").isString().stringValue());
    					JSONArray articles=cats.get(i).isObject().get("articles").isObject().get("article").isArray();
     
    					for(int m=0;m<articles.size();m++)
    						{
    						JSONObject jison= new JSONObject();
    						jison=articles.get(m).isObject();
    						Article art=new Article(jison.get("id").isString().stringValue(),jison.get("name").isString().stringValue(),jison.get("address").isString().stringValue(),Double.parseDouble(jison.get("price").isString().stringValue()));
     
    						Label label= new Label(art.getNom());
    						dragController.makeDraggable(art,label);
    							panel.add(label);
    						}
     
    					panelclass.add(panel);
    				}

    Au final rien que ce qui est fait sur la vu en jsf est en terme de ligne de code sensiblement égal à ce que tu fait en gwt pour tout.
    Le travail fournit en jsf était beaucoup plus importante que celui en gwt.Donc je pense que tu peux faire pareil que ce qui a été fait en struts mais en ayant un esprit gwt

Discussions similaires

  1. Réponses: 0
    Dernier message: 02/06/2010, 13h20
  2. migration d'actionMapping de Struts vers Struts 2
    Par pcouas dans le forum Struts 2
    Réponses: 4
    Dernier message: 27/05/2009, 13h08
  3. Migration de struts 1.1 vers struts 1.2.9
    Par VIP001 dans le forum Struts 1
    Réponses: 4
    Dernier message: 27/02/2009, 13h32
  4. migration de struts vers JSF
    Par karim_sousse dans le forum Struts 1
    Réponses: 2
    Dernier message: 03/02/2009, 15h17
  5. Migration de struts 1.0 vers struts 1.3
    Par ElOmbre495 dans le forum Struts 1
    Réponses: 1
    Dernier message: 14/03/2008, 15h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo