Suche senden
Hochladen
Introduction Groovy / Grails - Cyril Picat - December 2009
•
4 gefällt mir
•
1,261 views
JUG Lausanne
Folgen
Introduction Groovy / Grails - Cyril Picat - December 2009
Weniger lesen
Mehr lesen
Technologie
Diashow-Anzeige
Melden
Teilen
Diashow-Anzeige
Melden
Teilen
1 von 45
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
JUGL 2009 - Introduction Groovy/Grails
JUGL 2009 - Introduction Groovy/Grails
cyrilpicat
Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009
Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009
JUG Lausanne
Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009
JUG Lausanne
GWT no-dto
GWT no-dto
François Wauquier
Anniversaire Paris JUG - Deja 10 ans - retour vers le futur avec JMX
Anniversaire Paris JUG - Deja 10 ans - retour vers le futur avec JMX
Jean-Michel Doudoux
presentation Compu training
presentation Compu training
paulinebellanger
Medios de comunicación
Medios de comunicación
juliadri24
Menudo pelotazo
Menudo pelotazo
juancar_
Empfohlen
JUGL 2009 - Introduction Groovy/Grails
JUGL 2009 - Introduction Groovy/Grails
cyrilpicat
Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009
Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009
JUG Lausanne
Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009
JUG Lausanne
GWT no-dto
GWT no-dto
François Wauquier
Anniversaire Paris JUG - Deja 10 ans - retour vers le futur avec JMX
Anniversaire Paris JUG - Deja 10 ans - retour vers le futur avec JMX
Jean-Michel Doudoux
presentation Compu training
presentation Compu training
paulinebellanger
Medios de comunicación
Medios de comunicación
juliadri24
Menudo pelotazo
Menudo pelotazo
juancar_
Proceso para la obtención de un programa ejecutable
Proceso para la obtención de un programa ejecutable
Edward Eliecer Silva Mejia
Villamarin oscar. producto 3
Villamarin oscar. producto 3
Oscar Javier Villamarin
Ciencia, tecnologia y educacion para no expertos
Ciencia, tecnologia y educacion para no expertos
Camilo Cardenas
Proyecto institucional media_tecnica_nomina_y_prestaciones_sociales
Proyecto institucional media_tecnica_nomina_y_prestaciones_sociales
nuryyy
Cipjes pres
Cipjes pres
Derechos De Juventud Cidj
Homo videns
Homo videns
IraisOcampo
Franche comté Jéssica
Franche comté Jéssica
Jéssica Silva
Regalitos
Regalitos
karitosanta
OpenDS - Ludovic Poitou - December 2010
OpenDS - Ludovic Poitou - December 2010
JUG Lausanne
Formations tertiaires Brest
Formations tertiaires Brest
CCI Brest Formations
Presentation de D-Lices 131107
Presentation de D-Lices 131107
GCAILLEAU
Vr100 -133106_contabilidad-1
Vr100 -133106_contabilidad-1
nuryyy
Vr100 133106 contabilidad-1
Vr100 133106 contabilidad-1
karitosanta
Centres sociaux
Centres sociaux
Isabelle Gabay
Un/Une
Un/Une
ashleetaylor28
Integracion de las tic.unprg.
Integracion de las tic.unprg.
nilzuhu
Teorías de aprendizaje tic
Teorías de aprendizaje tic
nilzuhu
Problemática yerbatera (segunda parte)
Problemática yerbatera (segunda parte)
susanabartz
Entrees sorties
Entrees sorties
yazidds2
Publicate baja california
Publicate baja california
garden92
Yocto une solution robuste pour construire des applications à fort contenu ap...
Yocto une solution robuste pour construire des applications à fort contenu ap...
Christian Charreyre
Formation Play! framework
Formation Play! framework
Benoît Simard
Weitere ähnliche Inhalte
Andere mochten auch
Proceso para la obtención de un programa ejecutable
Proceso para la obtención de un programa ejecutable
Edward Eliecer Silva Mejia
Villamarin oscar. producto 3
Villamarin oscar. producto 3
Oscar Javier Villamarin
Ciencia, tecnologia y educacion para no expertos
Ciencia, tecnologia y educacion para no expertos
Camilo Cardenas
Proyecto institucional media_tecnica_nomina_y_prestaciones_sociales
Proyecto institucional media_tecnica_nomina_y_prestaciones_sociales
nuryyy
Cipjes pres
Cipjes pres
Derechos De Juventud Cidj
Homo videns
Homo videns
IraisOcampo
Franche comté Jéssica
Franche comté Jéssica
Jéssica Silva
Regalitos
Regalitos
karitosanta
OpenDS - Ludovic Poitou - December 2010
OpenDS - Ludovic Poitou - December 2010
JUG Lausanne
Formations tertiaires Brest
Formations tertiaires Brest
CCI Brest Formations
Presentation de D-Lices 131107
Presentation de D-Lices 131107
GCAILLEAU
Vr100 -133106_contabilidad-1
Vr100 -133106_contabilidad-1
nuryyy
Vr100 133106 contabilidad-1
Vr100 133106 contabilidad-1
karitosanta
Centres sociaux
Centres sociaux
Isabelle Gabay
Un/Une
Un/Une
ashleetaylor28
Integracion de las tic.unprg.
Integracion de las tic.unprg.
nilzuhu
Teorías de aprendizaje tic
Teorías de aprendizaje tic
nilzuhu
Problemática yerbatera (segunda parte)
Problemática yerbatera (segunda parte)
susanabartz
Entrees sorties
Entrees sorties
yazidds2
Publicate baja california
Publicate baja california
garden92
Andere mochten auch
(20)
Proceso para la obtención de un programa ejecutable
Proceso para la obtención de un programa ejecutable
Villamarin oscar. producto 3
Villamarin oscar. producto 3
Ciencia, tecnologia y educacion para no expertos
Ciencia, tecnologia y educacion para no expertos
Proyecto institucional media_tecnica_nomina_y_prestaciones_sociales
Proyecto institucional media_tecnica_nomina_y_prestaciones_sociales
Cipjes pres
Cipjes pres
Homo videns
Homo videns
Franche comté Jéssica
Franche comté Jéssica
Regalitos
Regalitos
OpenDS - Ludovic Poitou - December 2010
OpenDS - Ludovic Poitou - December 2010
Formations tertiaires Brest
Formations tertiaires Brest
Presentation de D-Lices 131107
Presentation de D-Lices 131107
Vr100 -133106_contabilidad-1
Vr100 -133106_contabilidad-1
Vr100 133106 contabilidad-1
Vr100 133106 contabilidad-1
Centres sociaux
Centres sociaux
Un/Une
Un/Une
Integracion de las tic.unprg.
Integracion de las tic.unprg.
Teorías de aprendizaje tic
Teorías de aprendizaje tic
Problemática yerbatera (segunda parte)
Problemática yerbatera (segunda parte)
Entrees sorties
Entrees sorties
Publicate baja california
Publicate baja california
Ähnlich wie Introduction Groovy / Grails - Cyril Picat - December 2009
Yocto une solution robuste pour construire des applications à fort contenu ap...
Yocto une solution robuste pour construire des applications à fort contenu ap...
Christian Charreyre
Formation Play! framework
Formation Play! framework
Benoît Simard
Innover sans contrainte, intégrer sans rupture
Innover sans contrainte, intégrer sans rupture
Guillaume Laforge
La Duck Conf - Continuous Security : Secure a DevOps World!
La Duck Conf - Continuous Security : Secure a DevOps World!
OCTO Technology
Rebuild 2018 - Bonnes pratiques de développement Mixed Reality
Rebuild 2018 - Bonnes pratiques de développement Mixed Reality
Vincent Guigui
Comptoir - Utiliser une solution d'edge Open Source pour améliorer l'inspecti...
Comptoir - Utiliser une solution d'edge Open Source pour améliorer l'inspecti...
OCTO Technology
Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013
jeromevdl
Strategie de Virtualisation Open Source
Strategie de Virtualisation Open Source
Open Source School
Introduction à web assembly
Introduction à web assembly
Jérémy Buget
OCTO Talks - Les IA s'invitent au chevet des développeurs
OCTO Talks - Les IA s'invitent au chevet des développeurs
OCTO Technology
Le futur de gwt
Le futur de gwt
Arnaud Tournier
Retour d'expérience du métier d'architecte logiciel
Retour d'expérience du métier d'architecte logiciel
Mik_Arber
Gtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogy
Sacha Leprêtre
Comment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open Source
Christian Charreyre
Concevoir un système Linux embarqué avec Yocto Project
Concevoir un système Linux embarqué avec Yocto Project
Christian Charreyre
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven
Arnaud Héritier
Cours cordova & REST
Cours cordova & REST
Christophe Zome
Paris JUG - Backbone.js en environnement Java - Laurent DUTHEIL et Frederic M...
Paris JUG - Backbone.js en environnement Java - Laurent DUTHEIL et Frederic M...
Frederic Merizen
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
JUG Lausanne
LA DUCK CONF 2023 - La vie d'Ops au coeur d'un SI en évolution
LA DUCK CONF 2023 - La vie d'Ops au coeur d'un SI en évolution
OCTO Technology
Ähnlich wie Introduction Groovy / Grails - Cyril Picat - December 2009
(20)
Yocto une solution robuste pour construire des applications à fort contenu ap...
Yocto une solution robuste pour construire des applications à fort contenu ap...
Formation Play! framework
Formation Play! framework
Innover sans contrainte, intégrer sans rupture
Innover sans contrainte, intégrer sans rupture
La Duck Conf - Continuous Security : Secure a DevOps World!
La Duck Conf - Continuous Security : Secure a DevOps World!
Rebuild 2018 - Bonnes pratiques de développement Mixed Reality
Rebuild 2018 - Bonnes pratiques de développement Mixed Reality
Comptoir - Utiliser une solution d'edge Open Source pour améliorer l'inspecti...
Comptoir - Utiliser une solution d'edge Open Source pour améliorer l'inspecti...
Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013
Strategie de Virtualisation Open Source
Strategie de Virtualisation Open Source
Introduction à web assembly
Introduction à web assembly
OCTO Talks - Les IA s'invitent au chevet des développeurs
OCTO Talks - Les IA s'invitent au chevet des développeurs
Le futur de gwt
Le futur de gwt
Retour d'expérience du métier d'architecte logiciel
Retour d'expérience du métier d'architecte logiciel
Gtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogy
Comment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open Source
Concevoir un système Linux embarqué avec Yocto Project
Concevoir un système Linux embarqué avec Yocto Project
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven
Cours cordova & REST
Cours cordova & REST
Paris JUG - Backbone.js en environnement Java - Laurent DUTHEIL et Frederic M...
Paris JUG - Backbone.js en environnement Java - Laurent DUTHEIL et Frederic M...
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
LA DUCK CONF 2023 - La vie d'Ops au coeur d'un SI en évolution
LA DUCK CONF 2023 - La vie d'Ops au coeur d'un SI en évolution
Mehr von JUG Lausanne
Introduction aux algorithmes génétiques
Introduction aux algorithmes génétiques
JUG Lausanne
Développer un moteur d'exécution symbolique en partant de rien
Développer un moteur d'exécution symbolique en partant de rien
JUG Lausanne
Reverse engineering Java et contournement du mécanisme de paiement inapp Android
Reverse engineering Java et contournement du mécanisme de paiement inapp Android
JUG Lausanne
Exemple d'IOT et ML avec Android, Cassandra et Spark
Exemple d'IOT et ML avec Android, Cassandra et Spark
JUG Lausanne
Play! chez Zaptravel - Nicolas Martignole - December 2012
Play! chez Zaptravel - Nicolas Martignole - December 2012
JUG Lausanne
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012
JUG Lausanne
CloudBees - Sacha Labourey - May 2011
CloudBees - Sacha Labourey - May 2011
JUG Lausanne
Apache Camel - Stéphane Kay - April 2011
Apache Camel - Stéphane Kay - April 2011
JUG Lausanne
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...
JUG Lausanne
Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010
JUG Lausanne
Infinispan - Galder Zamarreno - October 2010
Infinispan - Galder Zamarreno - October 2010
JUG Lausanne
No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010
JUG Lausanne
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
JUG Lausanne
Introduction à Scala - Michel Schinz - January 2010
Introduction à Scala - Michel Schinz - January 2010
JUG Lausanne
Sonar - Freddy Mallet - April 2009
Sonar - Freddy Mallet - April 2009
JUG Lausanne
XML & Java - Raphaël Tagliani - March 2008
XML & Java - Raphaël Tagliani - March 2008
JUG Lausanne
Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008
Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008
JUG Lausanne
Scripting with Java FX - Cédric Tabin - December 2007
Scripting with Java FX - Cédric Tabin - December 2007
JUG Lausanne
GlassFish Update and Directions - Karim Mazouni - November 2007
GlassFish Update and Directions - Karim Mazouni - November 2007
JUG Lausanne
JUG Launch - Cédric Tabin - September 2007
JUG Launch - Cédric Tabin - September 2007
JUG Lausanne
Mehr von JUG Lausanne
(20)
Introduction aux algorithmes génétiques
Introduction aux algorithmes génétiques
Développer un moteur d'exécution symbolique en partant de rien
Développer un moteur d'exécution symbolique en partant de rien
Reverse engineering Java et contournement du mécanisme de paiement inapp Android
Reverse engineering Java et contournement du mécanisme de paiement inapp Android
Exemple d'IOT et ML avec Android, Cassandra et Spark
Exemple d'IOT et ML avec Android, Cassandra et Spark
Play! chez Zaptravel - Nicolas Martignole - December 2012
Play! chez Zaptravel - Nicolas Martignole - December 2012
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012
CloudBees - Sacha Labourey - May 2011
CloudBees - Sacha Labourey - May 2011
Apache Camel - Stéphane Kay - April 2011
Apache Camel - Stéphane Kay - April 2011
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...
Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010
Infinispan - Galder Zamarreno - October 2010
Infinispan - Galder Zamarreno - October 2010
No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
Introduction à Scala - Michel Schinz - January 2010
Introduction à Scala - Michel Schinz - January 2010
Sonar - Freddy Mallet - April 2009
Sonar - Freddy Mallet - April 2009
XML & Java - Raphaël Tagliani - March 2008
XML & Java - Raphaël Tagliani - March 2008
Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008
Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008
Scripting with Java FX - Cédric Tabin - December 2007
Scripting with Java FX - Cédric Tabin - December 2007
GlassFish Update and Directions - Karim Mazouni - November 2007
GlassFish Update and Directions - Karim Mazouni - November 2007
JUG Launch - Cédric Tabin - September 2007
JUG Launch - Cédric Tabin - September 2007
Introduction Groovy / Grails - Cyril Picat - December 2009
1.
Introduction Groovy /
Grails JUG Lausanne Jeudi 10 décembre 2009
2.
Présentateur Cyril PICAT
Architecte chez OCTO Technology cpicat@octo.com http://www.octo.com Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 2
3.
Agenda L’éco-système Groovy
(GR3) Présentation de Groovy Présentation de Grails Synthèse : Groovy / Grails pour ? Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 3
4.
L’ECO-SYSTÈME GROOVY (GR3) Copyright
© 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 4
5.
Qu’est-ce que Groovy
? Groovy est un langage dynamique pour la machine virtuelle Java « Interprété » ou compilé Génère du bytecode Grammaire dérivée du langage Java Et inspiré d’autres langages : Python, Ruby, SmallTalk Son but est de simplifier la vie des développeurs Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 5
6.
Qu’est-ce que Grails
? Grails est un framework de développement d’applications Web Inspiré par Ruby on Rails, Django, Turbo Gears Pour la plateforme Java Basé sur Groovy S’appuie sur des briques Open Source reconnues (Spring, Hibernate etc…) Son but est de simplifier le développement tout en permettant la ré-utilisation de l’existant Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 6
7.
Un peu d’histoire…
Groovy Lancé en 2003 Version 1.0 en janvier 2007 Branche stable : 1.6.7 datée de décembre 2009 JSR-223 en 2006 : langages de script sur la JVM Grails Lancé en 2005 Version 1.0 en février 2008 Branche stable : 1.1.2 datée de novembre 2009 Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 7
8.
Eco-système Griffon Framework
MVC pour construire des applications Swing – similaire à Grails pour le RDA Gradle Nouveau système de build inspiré de Ant, Maven et Ivy Easyb Behaviour Driven Development (BDD). Utilise du langage naturel pour décrire les tests et donc documenter le code Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 8
9.
PRÉSENTATION DE GROOVY Copyright
© 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 9
10.
Langage Dérivé de
Java À quelques exceptions près… Un programme Java compile en Groovy Surcouche à Java En terme de syntaxe En terme d’API Apports Simplification du code Expressivité, lisibilité du code Simplification de l’écriture de scripts Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 10
11.
Ex. d’utilisation -
DSL DSL = Domain Specific Language Grails fait un usage intensif de ces fonctionnalités ex. GORM, l’API de persistence de Grails Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 11
12.
Outils Shell et
console: groovysh and groovyConsole Tâche Ant, plugin Maven (GMaven) Un compilateur joint groovyc Compile Groovy et Java simultanémenent Support dans les IDE Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 12
13.
DEMO: HELLOWORLD EN
GROOVY Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 13
14.
Intéropérabilité avec Java
Groovy génère des .class - bytecode Java Mêmes chaînes de caractères et expressions régulières Mêmes APIs — JDK, collections, 3rd party Même modèle de sécurité, même threading Même modèle de programmation Orienté Objet Compilation “jointe” Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 14
15.
Listes, maps, ranges,
regex... Listes def list = ["Groovy", "Grails"] println list[0] list[2] = "Griffon" Maps — dictionnaires def states = [CA: "California", TX: "Texas"] println states["CA"]; println states.CA States["NY"] = "New York" Ranges def range = 1..10; def range = 'a'..'d' for (i in 1..10) { … } Regex (myString =~ /Hello/).each { … } Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 15
16.
GDK GDK =
Groovy Development Kit Groovy « décore » le JDK existant étend Object étend des classes final comme java.lang.String ou java.io.File Exemples : new File(“f.txt”).eachLine { println it } (1..100).findAll { it % 2 == 1 } speakers.groupBy { it.lastname } “123”.padLeft(5, ‘0’) Thread.start { /* code to be executed */ } Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 16
17.
DEMO: REST EN
GROOVY Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 17
18.
Et bien plus... Surcharge
d’opérateurs Multi-méthodes API pour SQL, Ant, XML, templates, Swing, JMX, WS Groovy Truth GPath avancé Groovy Builders Paramètres nommés Meta-programming statique (AST) et dynamique (MOP) Autres mécanismes d’intégration avec Spring, Java etc… Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 18
19.
PRÉSENTATION DE GRAILS Copyright
© 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 19
20.
Vision très haut-niveau
Grails est un framework MVC action-based Grails utilise les principes rendus populaires par Rails CoC: Convention over Configuration DRY: Don’t Repeat Yourself Scaffolding Productivité et simplicité de développement Web Tout en protégeant votre investissement sur la plateforme Java Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 20
21.
Vision haut-niveau Copyright ©
2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 21
22.
Vision rapprochée Grails
est bâti sur des technologies éprouvées la JVM, les specs Java EE, les serveurs d’app Spring : IoC, DI, Spring MVC, Spring WebFlow Hibernate : Object-Relational Mapping SiteMesh : structure de page et composition Quartz : séquencement de tâches Jetty and HSQLDB : pour des cycles de développement rapide Grails est fourni comme un ensemble intégré et est productif immédiatemment Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 22
23.
DEMO: CRÉATION D’UNE
APPLICATION GRAILS VIDE Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 23
24.
Arborescence et nommage Copyright
© 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 24
25.
Outils Les mêmes
outils que pour Groovy Sauf pour Eclipse, pas de support direct de Grails Support de Grails dans Eclipse via SpringSource Tools Suite (STS) Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 25
26.
DEMO: DOMAINE /
CONTROLLEUR / VUE / SERVICE Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 26
27.
Avez-vous remarqué ? Où
sont les fichiers de configuration ? Pas besoin d’écrire du XML ? Où sont mes DAOs ? Où sont mes fichiers de mapping ? Pas besoin de configurer une base de données ? Pas besoin d’installer et de configurer un serveur d’app ? Pas besoin de télécharger des tonnes de jar depuis des repositories Maven ? => Il y a de la magie dans l’air :-) Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 27
28.
Synthèse demo Explication
des conventions Domaine Controlleur / Actions Vue Service CRUD en Grails Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 28
29.
DEMO: WEB LAYER Copyright
© 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 29
30.
Synthèse demo GSP
Support de la syntaxe JSP/ASP <% %> GSP tags : variable, logique, search, filter, links, forms Tags • fonctions groovy standard utilisables en <g:xx> ou ${g.xx} Création de librairies de Tag Templates Layout de site avec SiteMesh Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 30
31.
DEMO: DOMAINE -
GORM Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 31
32.
Synthèse demo DSL
GORM (Grails ORM) Contraintes / Validation Association / Composition / Héritage Classes du domaine décorées save / delete count / get / getAll / list • pagination & sorting dynamic finders : findBy / findAllBy • pagination & sorting Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 32
33.
DEMO: CONTROLLER &
BINDINGS Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 33
34.
Synthèse demo GORM
Controller Bindings : simple / multiple / association URL Mappings Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 34
35.
Plugins Grails est
bâti sur un système de plugins évolué Le coeur même de Grails est constitué de plugins Hibernate plugin Tomcat plugin Les plugins rajoutent de la fonctionnalité Domaine, service, controlleur, tag libs et même conventions ! Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 35
36.
DEMO: GOOGLE CHART
PLUGIN Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 36
37.
Plugins disponibles 100+
plugins disponibles Build : Maven Tests : Webtest, Easyb, Selenium, jsUnit, Fitnesse… Rich client / AJAX : Yahoo, Ext-JS, GWT, jQuery, iUI… Web Services : XFire, remoting, Axis2, Metro… Sécurité : Spring Security, Jsecurity… Search : Compass integration… Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 37
38.
Déploiement Environnements Par
défaut développement / test / production Possibilité de créer ses propres environnements Déploiement Commandes ‘grails run-app/run-war/war’ Serveurs d’application supportés Tomcat, Jetty, GlassFish, JBoss, Weblogic etc… Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 38
39.
Ce que l’on
a pas vu… Advanced Query : Hibernate HQL, Criteria Spring Web Flow Internationalisation Architectures type REST Tests en Grails GORM avancé eager/lazy fetching, pessimistic/optimistic locking utilisation de schémas existants, de mapping Hibernate ou de configuration Spring existantes Filtres / intercepteurs Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 39
40.
SYNTHÈSE : GROOVY
/ GRAILS POUR ? Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 40
41.
Synthèse Parfait pour
développer rapidement des applications innovantes Adapté à un développement Agile des applications Permet de montrer très rapidement des écrans fonctionnels Également adapté aux développement de nouvelles fonctionnalités en s’interfaçant avec du legacy Architecture type REST Permet de profiter de toutes ces nouveautés toute de suite Pas d’impact en production Permet une transition facile de la zone d’innovation vers la zone rationalisée Si besoin Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 41
42.
Bibliographie Livres Groovy •
Groovy in Action Grails • The Definitive Guide to Grails, 2nd edition • Grails in Action Ressources : Groovy User Guide : http://groovy.codehaus.org/User+Guide Groovy GDK : http://groovy.codehaus.org/groovy-jdk Grails User Guide : http://www.grails.org/doc/latest Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 42
43.
Sources « Introduction
à Groovy », Guillaume Laforge, Paris JUG, septembre 2008 « Groovy & Grails in Action! », Guillaume Laforge, Devoxx, 2008 Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 43
44.
Licence Creative Commons Contrat Paternité Pas
d'Utilisation Commerciale Partage des Conditions Initiales à l'Identique 2.0 France http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 44
45.
Q&A Copyright © 2009
– OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 45
Jetzt herunterladen