SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
GWT noDTO Distilled



   Francois Wauquier
        @wokier
      Artisan du SI
GWT

    Transcripteur Java->Javascript

    Widgets

    Outils de développement

    Code performant pour l'utilisateur
    
        Compression
    
        Découpage du code par navigateur/locale




Productivity for developers, performance for users
Google ? Web Toolkit
Ray Cromwell (Google representative and acting
 Committee Chair)
Artur Signell (Vaadin representative)
Mike Brock (RedHat representative)
David Chandler (Developer Advocate at Google)
Daniel Kurka (mgwt, gwt-phonegap)
Bhaskar Janakiraman (Google)
DTO


Serveur                                         Client

    MonEntite                            MonDTO




          Mais j'écris mes classes 2 fois !!!
DTO


Serveur                                          Client

    MonEntite                             MonDTO



  Dozer http://dozer.sourceforge.net/

  Setget Factory

  Reflection Factory (BeanUtils)

  Ubiquity http://larochef.github.io/ubiquity/
noDTO


Serveur               Client

          MonEntite
DTOs
Pros


    Isole

    Définit une API stable

    Sous-ensemble de
    l'entité pour
    
        les perf
    
        La sécurité

No source code is
 available for type…
DTOs
Pros                         Cons


    Isole                    
                                 Duplique

    Définit une API stable   
                                 Duplique

    Sous-ensemble de
    l'entité pour
                             
                                 Duplique
    
        les perf             
                                 Si l'API est publique
    
        La sécurité          
                                 Doit rester l'exception
No source code is
 available for type…
Lever les contraintes




       No DTO
Utilitaires

    Guava-gwt : Google common
https://code.google.com/p/guava-libraries/
Validation
• Bean-validation : contraintes
http://beanvalidation.org/
https://developers.google.com/web-toolkit/doc/latest/D
ToString Equals HashCode

    Lombock : Génération Code
http://projectlombok.org/


    GWT-TEH : Annotations
https://github.com/wokier/GWT-TEH
Persistance

    Objectify : Appengine BigTable
https://code.google.com/p/objectify-appengine/


    Gilead : Hibernate
http://sourceforge.net/projects/gilead/
Log

    GWT Logging
https://developers.google.com/web-toolkit/doc/latest/D


    GWT Usefull Logging
https://code.google.com/p/gwt-usefull-logging/


    gwt-log
https://code.google.com/p/gwt-log/
Conclusion
Performances

       No-dto
                Ubiquity                 Set-get Factory (à la main)

                               Reflection Factory
                           Dozer




                                                      Temps de dévelopement
Exemple
Demo
http://gwt-nodto-quickie.appspot.com/


Code
https://github.com/wokier/GwtNoDtoQuickie
Questions / Réponses
Merci
Francois Wauquier
     @wokier
   Artisan du SI

Contenu connexe

En vedette

Acer-EUN etude pilot sur les netbooks educatifs, kickoff - Nancy, Fr
Acer-EUN etude pilot sur les netbooks educatifs, kickoff - Nancy, FrAcer-EUN etude pilot sur les netbooks educatifs, kickoff - Nancy, Fr
Acer-EUN etude pilot sur les netbooks educatifs, kickoff - Nancy, FrRiina Vuorikari
 
Liste d'appel arabe annexe crfpe
Liste d'appel arabe annexe crfpeListe d'appel arabe annexe crfpe
Liste d'appel arabe annexe crfpeMOUHAMAD SOW
 
Présentation de Frenchsouth.digital - lancement le 5 mai 2015 - Verchant
Présentation de Frenchsouth.digital - lancement le 5 mai 2015 - VerchantPrésentation de Frenchsouth.digital - lancement le 5 mai 2015 - Verchant
Présentation de Frenchsouth.digital - lancement le 5 mai 2015 - VerchantFrenchsouth.digital
 
Cazadores De Serpientes En Africa
Cazadores De Serpientes En AfricaCazadores De Serpientes En Africa
Cazadores De Serpientes En Africacentrowebs
 
Les 2 Premiers Mois De Sacha
Les 2 Premiers Mois De SachaLes 2 Premiers Mois De Sacha
Les 2 Premiers Mois De Sachasmargeridon
 
Suivi de la primaire de la droite et du centre sur twitter - entre-deux-tours
Suivi de la primaire de  la droite et du centre sur twitter - entre-deux-toursSuivi de la primaire de  la droite et du centre sur twitter - entre-deux-tours
Suivi de la primaire de la droite et du centre sur twitter - entre-deux-toursRomain Brami
 
Examen D.D. - Mine & Wilmet
Examen D.D. - Mine & Wilmet Examen D.D. - Mine & Wilmet
Examen D.D. - Mine & Wilmet Mélanie W
 
Volley championnat de france2012 copie
Volley championnat de france2012   copieVolley championnat de france2012   copie
Volley championnat de france2012 copielouisemichelchampigny
 
XebiConFr 15 - Témoignage Orange Technocentre - Comment intégrer le Marketing...
XebiConFr 15 - Témoignage Orange Technocentre - Comment intégrer le Marketing...XebiConFr 15 - Témoignage Orange Technocentre - Comment intégrer le Marketing...
XebiConFr 15 - Témoignage Orange Technocentre - Comment intégrer le Marketing...Publicis Sapient Engineering
 
Informe para primer debate del proyecto de ley reformatoria a la ley de segur...
Informe para primer debate del proyecto de ley reformatoria a la ley de segur...Informe para primer debate del proyecto de ley reformatoria a la ley de segur...
Informe para primer debate del proyecto de ley reformatoria a la ley de segur...Asamblea Nacional
 
Ley orgánica de los consejos nacionales para la igualdad
Ley orgánica de los consejos nacionales para la igualdadLey orgánica de los consejos nacionales para la igualdad
Ley orgánica de los consejos nacionales para la igualdadAsamblea Nacional
 
Prez infolab-bilan2015
Prez infolab-bilan2015Prez infolab-bilan2015
Prez infolab-bilan2015Fing
 
collections numeriques et bibliotheques
collections numeriques et bibliothequescollections numeriques et bibliotheques
collections numeriques et bibliothequesKotkot
 
el chat
el chatel chat
el chatsofia
 
Trabajo Planificación
Trabajo PlanificaciónTrabajo Planificación
Trabajo Planificaciónmarcosgarate
 
20100211 Partage De DonnéEs Publiques V2
20100211    Partage De DonnéEs Publiques V220100211    Partage De DonnéEs Publiques V2
20100211 Partage De DonnéEs Publiques V2Fing
 

En vedette (20)

Acer-EUN etude pilot sur les netbooks educatifs, kickoff - Nancy, Fr
Acer-EUN etude pilot sur les netbooks educatifs, kickoff - Nancy, FrAcer-EUN etude pilot sur les netbooks educatifs, kickoff - Nancy, Fr
Acer-EUN etude pilot sur les netbooks educatifs, kickoff - Nancy, Fr
 
Desarrollo
DesarrolloDesarrollo
Desarrollo
 
Ue nam-2010-2011
Ue nam-2010-2011Ue nam-2010-2011
Ue nam-2010-2011
 
Liste d'appel arabe annexe crfpe
Liste d'appel arabe annexe crfpeListe d'appel arabe annexe crfpe
Liste d'appel arabe annexe crfpe
 
Présentation de Frenchsouth.digital - lancement le 5 mai 2015 - Verchant
Présentation de Frenchsouth.digital - lancement le 5 mai 2015 - VerchantPrésentation de Frenchsouth.digital - lancement le 5 mai 2015 - Verchant
Présentation de Frenchsouth.digital - lancement le 5 mai 2015 - Verchant
 
Cazadores De Serpientes En Africa
Cazadores De Serpientes En AfricaCazadores De Serpientes En Africa
Cazadores De Serpientes En Africa
 
Les 2 Premiers Mois De Sacha
Les 2 Premiers Mois De SachaLes 2 Premiers Mois De Sacha
Les 2 Premiers Mois De Sacha
 
Suivi de la primaire de la droite et du centre sur twitter - entre-deux-tours
Suivi de la primaire de  la droite et du centre sur twitter - entre-deux-toursSuivi de la primaire de  la droite et du centre sur twitter - entre-deux-tours
Suivi de la primaire de la droite et du centre sur twitter - entre-deux-tours
 
Examen D.D. - Mine & Wilmet
Examen D.D. - Mine & Wilmet Examen D.D. - Mine & Wilmet
Examen D.D. - Mine & Wilmet
 
Pablo And Edwin
Pablo And EdwinPablo And Edwin
Pablo And Edwin
 
Volley championnat de france2012 copie
Volley championnat de france2012   copieVolley championnat de france2012   copie
Volley championnat de france2012 copie
 
Chocolat artistique
Chocolat artistiqueChocolat artistique
Chocolat artistique
 
XebiConFr 15 - Témoignage Orange Technocentre - Comment intégrer le Marketing...
XebiConFr 15 - Témoignage Orange Technocentre - Comment intégrer le Marketing...XebiConFr 15 - Témoignage Orange Technocentre - Comment intégrer le Marketing...
XebiConFr 15 - Témoignage Orange Technocentre - Comment intégrer le Marketing...
 
Informe para primer debate del proyecto de ley reformatoria a la ley de segur...
Informe para primer debate del proyecto de ley reformatoria a la ley de segur...Informe para primer debate del proyecto de ley reformatoria a la ley de segur...
Informe para primer debate del proyecto de ley reformatoria a la ley de segur...
 
Ley orgánica de los consejos nacionales para la igualdad
Ley orgánica de los consejos nacionales para la igualdadLey orgánica de los consejos nacionales para la igualdad
Ley orgánica de los consejos nacionales para la igualdad
 
Prez infolab-bilan2015
Prez infolab-bilan2015Prez infolab-bilan2015
Prez infolab-bilan2015
 
collections numeriques et bibliotheques
collections numeriques et bibliothequescollections numeriques et bibliotheques
collections numeriques et bibliotheques
 
el chat
el chatel chat
el chat
 
Trabajo Planificación
Trabajo PlanificaciónTrabajo Planificación
Trabajo Planificación
 
20100211 Partage De DonnéEs Publiques V2
20100211    Partage De DonnéEs Publiques V220100211    Partage De DonnéEs Publiques V2
20100211 Partage De DonnéEs Publiques V2
 

Similaire à GWT no-dto

20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache MavenArnaud Héritier
 
Utilisation de git avec Delphi
Utilisation de git avec DelphiUtilisation de git avec Delphi
Utilisation de git avec Delphipprem
 
20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders BattleArnaud Héritier
 
Retour d'expérience AdobeMC 2011
Retour d'expérience AdobeMC 2011Retour d'expérience AdobeMC 2011
Retour d'expérience AdobeMC 2011jonasmonnier
 
Presentation of GWT 2.4 (PDF version)
Presentation of GWT 2.4 (PDF version)Presentation of GWT 2.4 (PDF version)
Presentation of GWT 2.4 (PDF version)Celinio Fernandes
 
Presentation of GWT 2.4 (PowerPoint version)
Presentation of GWT 2.4 (PowerPoint version)Presentation of GWT 2.4 (PowerPoint version)
Presentation of GWT 2.4 (PowerPoint version)Celinio Fernandes
 
De la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsDe la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsJohan Moreau
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsJulien Wittouck
 
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 WordCamp Lyon 2015 - WordPress, Git et l'intégration continue WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
WordCamp Lyon 2015 - WordPress, Git et l'intégration continueStéphane HULARD
 
GWT Approfondissement - GTI780 & MTI780 - ETS - A09
GWT Approfondissement  - GTI780 & MTI780 - ETS - A09GWT Approfondissement  - GTI780 & MTI780 - ETS - A09
GWT Approfondissement - GTI780 & MTI780 - ETS - A09Claude Coulombe
 
Devoxx 2017 : toutes les actualités technologiques à surveiller !
Devoxx 2017 : toutes les actualités technologiques à surveiller !Devoxx 2017 : toutes les actualités technologiques à surveiller !
Devoxx 2017 : toutes les actualités technologiques à surveiller !Société ELOSI
 
Adama Coulibaly.pptx
Adama Coulibaly.pptxAdama Coulibaly.pptx
Adama Coulibaly.pptxIdrissaDembl
 
Introduction à web assembly
Introduction à web assemblyIntroduction à web assembly
Introduction à web assemblyJérémy Buget
 
JUGL 2009 - Introduction Groovy/Grails
JUGL 2009 - Introduction Groovy/GrailsJUGL 2009 - Introduction Groovy/Grails
JUGL 2009 - Introduction Groovy/Grailscyrilpicat
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipelineNicolas wallerand
 
Développer des applications pour la TV
Développer des applications pour la TVDévelopper des applications pour la TV
Développer des applications pour la TVMickaël GREGORI
 
Introduction à GWT - GTI780 & MTI780 - ETS - A09
Introduction à GWT - GTI780 & MTI780 - ETS - A09Introduction à GWT - GTI780 & MTI780 - ETS - A09
Introduction à GWT - GTI780 & MTI780 - ETS - A09Claude Coulombe
 
Introduction à GWT - GTI780 & MTI780 - ETS - A08
Introduction à GWT - GTI780 & MTI780 - ETS - A08Introduction à GWT - GTI780 & MTI780 - ETS - A08
Introduction à GWT - GTI780 & MTI780 - ETS - A08Claude Coulombe
 

Similaire à GWT no-dto (20)

Gdd07 Gwt Dig
Gdd07 Gwt DigGdd07 Gwt Dig
Gdd07 Gwt Dig
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
Utilisation de git avec Delphi
Utilisation de git avec DelphiUtilisation de git avec Delphi
Utilisation de git avec Delphi
 
20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle20091020 - Normandy Jug - Builders Battle
20091020 - Normandy Jug - Builders Battle
 
Retour d'expérience AdobeMC 2011
Retour d'expérience AdobeMC 2011Retour d'expérience AdobeMC 2011
Retour d'expérience AdobeMC 2011
 
Presentation of GWT 2.4 (PDF version)
Presentation of GWT 2.4 (PDF version)Presentation of GWT 2.4 (PDF version)
Presentation of GWT 2.4 (PDF version)
 
Presentation of GWT 2.4 (PowerPoint version)
Presentation of GWT 2.4 (PowerPoint version)Presentation of GWT 2.4 (PowerPoint version)
Presentation of GWT 2.4 (PowerPoint version)
 
De la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsDe la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logiciels
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
 
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 WordCamp Lyon 2015 - WordPress, Git et l'intégration continue WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 
GWT Approfondissement - GTI780 & MTI780 - ETS - A09
GWT Approfondissement  - GTI780 & MTI780 - ETS - A09GWT Approfondissement  - GTI780 & MTI780 - ETS - A09
GWT Approfondissement - GTI780 & MTI780 - ETS - A09
 
Devoxx 2017 : toutes les actualités technologiques à surveiller !
Devoxx 2017 : toutes les actualités technologiques à surveiller !Devoxx 2017 : toutes les actualités technologiques à surveiller !
Devoxx 2017 : toutes les actualités technologiques à surveiller !
 
Adama Coulibaly.pptx
Adama Coulibaly.pptxAdama Coulibaly.pptx
Adama Coulibaly.pptx
 
Introduction à web assembly
Introduction à web assemblyIntroduction à web assembly
Introduction à web assembly
 
JUGL 2009 - Introduction Groovy/Grails
JUGL 2009 - Introduction Groovy/GrailsJUGL 2009 - Introduction Groovy/Grails
JUGL 2009 - Introduction Groovy/Grails
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipeline
 
Développer des applications pour la TV
Développer des applications pour la TVDévelopper des applications pour la TV
Développer des applications pour la TV
 
Introduction à GWT - GTI780 & MTI780 - ETS - A09
Introduction à GWT - GTI780 & MTI780 - ETS - A09Introduction à GWT - GTI780 & MTI780 - ETS - A09
Introduction à GWT - GTI780 & MTI780 - ETS - A09
 
Introduction à GWT - GTI780 & MTI780 - ETS - A08
Introduction à GWT - GTI780 & MTI780 - ETS - A08Introduction à GWT - GTI780 & MTI780 - ETS - A08
Introduction à GWT - GTI780 & MTI780 - ETS - A08
 
Javavs net
Javavs netJavavs net
Javavs net
 

Plus de François Wauquier

Agile france 2014 - Juste à temps
Agile france 2014 - Juste à tempsAgile france 2014 - Juste à temps
Agile france 2014 - Juste à tempsFrançois Wauquier
 
Agile france 2013 - Dette Technique
Agile france 2013 - Dette TechniqueAgile france 2013 - Dette Technique
Agile france 2013 - Dette TechniqueFrançois Wauquier
 
Un backlog public - Agile France 2012
Un backlog public - Agile France 2012 Un backlog public - Agile France 2012
Un backlog public - Agile France 2012 François Wauquier
 
Agile Tour Nantes 2011 frontieres de equipe
Agile Tour Nantes 2011 frontieres de equipeAgile Tour Nantes 2011 frontieres de equipe
Agile Tour Nantes 2011 frontieres de equipeFrançois Wauquier
 
Les Frontieres de L'equipe - Agile france 2011
Les Frontieres de L'equipe - Agile france 2011Les Frontieres de L'equipe - Agile france 2011
Les Frontieres de L'equipe - Agile france 2011François Wauquier
 
Domain Driven Design - Agile France 2010
Domain Driven Design - Agile France 2010Domain Driven Design - Agile France 2010
Domain Driven Design - Agile France 2010François Wauquier
 
Domain Driven Design - Agile Tour Lille 2009
Domain Driven Design - Agile Tour Lille 2009Domain Driven Design - Agile Tour Lille 2009
Domain Driven Design - Agile Tour Lille 2009François Wauquier
 

Plus de François Wauquier (10)

Agile france 2014 - Juste à temps
Agile france 2014 - Juste à tempsAgile france 2014 - Juste à temps
Agile france 2014 - Juste à temps
 
Agile france 2013 - Dette Technique
Agile france 2013 - Dette TechniqueAgile france 2013 - Dette Technique
Agile france 2013 - Dette Technique
 
Un backlog public - Agile France 2012
Un backlog public - Agile France 2012 Un backlog public - Agile France 2012
Un backlog public - Agile France 2012
 
Agile Tour Nantes 2011 frontieres de equipe
Agile Tour Nantes 2011 frontieres de equipeAgile Tour Nantes 2011 frontieres de equipe
Agile Tour Nantes 2011 frontieres de equipe
 
Les Frontieres de L'equipe - Agile france 2011
Les Frontieres de L'equipe - Agile france 2011Les Frontieres de L'equipe - Agile france 2011
Les Frontieres de L'equipe - Agile france 2011
 
Domain Driven Design - Agile France 2010
Domain Driven Design - Agile France 2010Domain Driven Design - Agile France 2010
Domain Driven Design - Agile France 2010
 
Jump4 It Gwt Mvc
Jump4 It Gwt MvcJump4 It Gwt Mvc
Jump4 It Gwt Mvc
 
Domain Driven Design - Agile Tour Lille 2009
Domain Driven Design - Agile Tour Lille 2009Domain Driven Design - Agile Tour Lille 2009
Domain Driven Design - Agile Tour Lille 2009
 
Planning Game Xp Days 2009
Planning Game Xp Days 2009Planning Game Xp Days 2009
Planning Game Xp Days 2009
 
Agile Tour Lille 2008
Agile Tour Lille 2008Agile Tour Lille 2008
Agile Tour Lille 2008
 

GWT no-dto

  • 1. GWT noDTO Distilled Francois Wauquier @wokier Artisan du SI
  • 2. GWT  Transcripteur Java->Javascript  Widgets  Outils de développement  Code performant pour l'utilisateur  Compression  Découpage du code par navigateur/locale Productivity for developers, performance for users
  • 3. Google ? Web Toolkit Ray Cromwell (Google representative and acting Committee Chair) Artur Signell (Vaadin representative) Mike Brock (RedHat representative) David Chandler (Developer Advocate at Google) Daniel Kurka (mgwt, gwt-phonegap) Bhaskar Janakiraman (Google)
  • 4.
  • 5. DTO Serveur Client MonEntite MonDTO Mais j'écris mes classes 2 fois !!!
  • 6.
  • 7. DTO Serveur Client MonEntite MonDTO  Dozer http://dozer.sourceforge.net/  Setget Factory  Reflection Factory (BeanUtils)  Ubiquity http://larochef.github.io/ubiquity/
  • 8.
  • 9. noDTO Serveur Client MonEntite
  • 10. DTOs Pros  Isole  Définit une API stable  Sous-ensemble de l'entité pour  les perf  La sécurité No source code is available for type…
  • 11. DTOs Pros Cons  Isole  Duplique  Définit une API stable  Duplique  Sous-ensemble de l'entité pour  Duplique  les perf  Si l'API est publique  La sécurité  Doit rester l'exception No source code is available for type…
  • 13.
  • 14. Utilitaires  Guava-gwt : Google common https://code.google.com/p/guava-libraries/
  • 15. Validation • Bean-validation : contraintes http://beanvalidation.org/ https://developers.google.com/web-toolkit/doc/latest/D
  • 16. ToString Equals HashCode  Lombock : Génération Code http://projectlombok.org/  GWT-TEH : Annotations https://github.com/wokier/GWT-TEH
  • 17. Persistance  Objectify : Appengine BigTable https://code.google.com/p/objectify-appengine/  Gilead : Hibernate http://sourceforge.net/projects/gilead/
  • 18. Log  GWT Logging https://developers.google.com/web-toolkit/doc/latest/D  GWT Usefull Logging https://code.google.com/p/gwt-usefull-logging/  gwt-log https://code.google.com/p/gwt-log/
  • 19.
  • 20. Conclusion Performances No-dto Ubiquity Set-get Factory (à la main) Reflection Factory Dozer Temps de dévelopement
  • 23. Merci Francois Wauquier @wokier Artisan du SI