SlideShare une entreprise Scribd logo
1  sur  39
Présentation de Grails Un Framework de développement Web agile page 2 N. ADOUANI - février 10
Sommaire ,[object Object]
Un peu d’histoire
Architecture, principes et composantes de Grails
Grails et les méthodologies agiles
Démos
Conclusionspage 3 N. ADOUANI - février 10
Introduction N. ADOUANI - février 10 page 4 Grails est un Framework de développement  Web, type MVC, dit de « haute productivité ».  Il est construit autour de technologies qui  ont fait leurs preuves dans l’écosystème  Java/J2ee tel que Spring, Hibernate, Sitemesh et autres. Il est basé sur le langage dynamique Groovy et sur certains paradigmes du génie logiciel comme « la configuration basée sur les conventions »
Objectifs L’objectif de cette présentation est : ,[object Object]
de faire un rapprochement entre Grails et les méthodologies agiles
montrer des exemples d’intégration de Grails avec les Frameworks AJAX, FLEX, etc…N. ADOUANI - février 10 page 5
Un peu d’histoire page 6 N. ADOUANI - février 10
Un peu d’histoire N. ADOUANI - février 10 page 7 Graeme Rocher : le fondateur du projet Grails Guillaume Laforge: le chef du projet Groovy Ils ont créé la société G2One qui a été rachetée par SpringSource en Novembre 2008
Un peu d’histoire N. ADOUANI - février 10 page 8 Grails = Pluriel de « grail » en anglais = Les Graals, d’où le logo du Framework Grails = Groovy on Rails par analogie au Framework Ruby on Rails
Grails, plus de détails page 9 N. ADOUANI - février 10
L’architecture page 10 Le langageGroovy Plugin xfire Plugin CMS Plugin GAE Plugin Flex Plugin jQuery Plugin Acegi Plugin Maven Plugin CouchDB Grails Plugin iWebKit Plugin Searchable Plugin RemotePagination Plugin Quartz HSQL db JUnit Jetty Log4j Java EE Spring Hibernate SiteMesh Le langage Java Le java Development Kit (JDK) La Java Virual Machine N. ADOUANI - février 10
Principes de Grails (1) ,[object Object]
Scaffolding (génération de code)
Tests unitaires
Les pluginsN. ADOUANI - février 10 page 11
Principes de Grails (2) Convention over configuration ,[object Object]
Il est aussi possible d’utiliser des fichiers de config si le besoin se fait sentir
Exemple: le nom d’une classe persistante est identique au nom de la table correspondante dans une base de données.N. ADOUANI - février 10 page 12
Principes de Grails (3)Scaffolding ,[object Object]
Cette technique est souvent utilisée pour générer les pages CRUD des applications selon le modèle MVC
Il existe deux types de scaffolding en Grails:
Dynamique : les contrôleurs et les vues sont générés en  « runtime » (au cours de l’exécution) =>  la modification du modèle ne demande pas de régénération de code
Statique : le code source des contrôleurs et des vues est généré lors du développement=> la modification du modèle métier nécessite une régénération de codeN. ADOUANI - février 10 page 13
Principes de Grails (4)Tests unitaires ,[object Object]
Grails fait la différence entre:
Tests unitaires: des tests qui n’ont aucune dépendance, notamment vers la base de données, le conteneur de Servlet, les interactions HTTP, les WS s’il y en a…=> nécessité d’utiliser des objets mock (bouchons)
Tests d’intégration: des tests qui ont accès à tout l’environnement de l’application (accès à la base de données, à la session, la requete HTTP…
Tests fonctionnels automatisés de l’IHM, type Selenium ou FitNessN. ADOUANI - février 10 page 14
Principes de Grails (5)Système de plugins ,[object Object]
Sécurité: Acegi
Mapping Objet Relationnel: JPA et JDO
Web Service : xfire, Spring WS
Web Flow : SpringWebFlow

Contenu connexe

Tendances

Hotwire: How To Build Reactive Rails Applications Without Javascript
Hotwire: How To Build Reactive Rails Applications Without JavascriptHotwire: How To Build Reactive Rails Applications Without Javascript
Hotwire: How To Build Reactive Rails Applications Without JavascriptMix & Go
 
대용량 데이터레이크 마이그레이션 사례 공유 [카카오게임즈 - 레벨 200] - 조은희, 팀장, 카카오게임즈 ::: Games on AWS ...
대용량 데이터레이크 마이그레이션 사례 공유 [카카오게임즈 - 레벨 200] - 조은희, 팀장, 카카오게임즈 ::: Games on AWS ...대용량 데이터레이크 마이그레이션 사례 공유 [카카오게임즈 - 레벨 200] - 조은희, 팀장, 카카오게임즈 ::: Games on AWS ...
대용량 데이터레이크 마이그레이션 사례 공유 [카카오게임즈 - 레벨 200] - 조은희, 팀장, 카카오게임즈 ::: Games on AWS ...Amazon Web Services Korea
 
Spring data presentation
Spring data presentationSpring data presentation
Spring data presentationOleksii Usyk
 
How to build a data lake with aws glue data catalog (ABD213-R) re:Invent 2017
How to build a data lake with aws glue data catalog (ABD213-R)  re:Invent 2017How to build a data lake with aws glue data catalog (ABD213-R)  re:Invent 2017
How to build a data lake with aws glue data catalog (ABD213-R) re:Invent 2017Amazon Web Services
 
20180724 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
20180724 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...20180724 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
20180724 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...Amazon Web Services Japan
 
AWS WAF のマネージドルールって結局どれを選べばいいの?
AWS WAF のマネージドルールって結局どれを選べばいいの?AWS WAF のマネージドルールって結局どれを選べばいいの?
AWS WAF のマネージドルールって結局どれを選べばいいの?YOJI WATANABE
 
Build Automation using Maven
Build Automation using Maven Build Automation using Maven
Build Automation using Maven Ankit Gubrani
 
Introduction of Java GC Tuning and Java Java Mission Control
Introduction of Java GC Tuning and Java Java Mission ControlIntroduction of Java GC Tuning and Java Java Mission Control
Introduction of Java GC Tuning and Java Java Mission ControlLeon Chen
 
Automating Backup & Archiving with AWS and CommVault
Automating Backup & Archiving with AWS and CommVaultAutomating Backup & Archiving with AWS and CommVault
Automating Backup & Archiving with AWS and CommVaultAmazon Web Services
 
AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...
AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...
AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...Amazon Web Services Korea
 
있는 그대로 저장하고, 바로 분석 가능한, 새로운 관점의 데이터 애널리틱 플랫폼 - 정세웅 애널리틱 스페셜리스트, AWS
있는 그대로 저장하고, 바로 분석 가능한, 새로운 관점의 데이터 애널리틱 플랫폼 - 정세웅 애널리틱 스페셜리스트, AWS있는 그대로 저장하고, 바로 분석 가능한, 새로운 관점의 데이터 애널리틱 플랫폼 - 정세웅 애널리틱 스페셜리스트, AWS
있는 그대로 저장하고, 바로 분석 가능한, 새로운 관점의 데이터 애널리틱 플랫폼 - 정세웅 애널리틱 스페셜리스트, AWSAmazon Web Services Korea
 
Getting Started With Cypress
Getting Started With CypressGetting Started With Cypress
Getting Started With CypressKnoldus Inc.
 
Using AWS CloudTrail Logs for Scalable, Automated Anomaly Detection - SID341 ...
Using AWS CloudTrail Logs for Scalable, Automated Anomaly Detection - SID341 ...Using AWS CloudTrail Logs for Scalable, Automated Anomaly Detection - SID341 ...
Using AWS CloudTrail Logs for Scalable, Automated Anomaly Detection - SID341 ...Amazon Web Services
 

Tendances (20)

A35 SQL Server と NUMA by 熊澤幸生
A35 SQL Server と NUMA by 熊澤幸生A35 SQL Server と NUMA by 熊澤幸生
A35 SQL Server と NUMA by 熊澤幸生
 
Hotwire: How To Build Reactive Rails Applications Without Javascript
Hotwire: How To Build Reactive Rails Applications Without JavascriptHotwire: How To Build Reactive Rails Applications Without Javascript
Hotwire: How To Build Reactive Rails Applications Without Javascript
 
Amazon DynamoDB Advanced Design Pattern
Amazon DynamoDB Advanced Design PatternAmazon DynamoDB Advanced Design Pattern
Amazon DynamoDB Advanced Design Pattern
 
대용량 데이터레이크 마이그레이션 사례 공유 [카카오게임즈 - 레벨 200] - 조은희, 팀장, 카카오게임즈 ::: Games on AWS ...
대용량 데이터레이크 마이그레이션 사례 공유 [카카오게임즈 - 레벨 200] - 조은희, 팀장, 카카오게임즈 ::: Games on AWS ...대용량 데이터레이크 마이그레이션 사례 공유 [카카오게임즈 - 레벨 200] - 조은희, 팀장, 카카오게임즈 ::: Games on AWS ...
대용량 데이터레이크 마이그레이션 사례 공유 [카카오게임즈 - 레벨 200] - 조은희, 팀장, 카카오게임즈 ::: Games on AWS ...
 
Spring data presentation
Spring data presentationSpring data presentation
Spring data presentation
 
How to build a data lake with aws glue data catalog (ABD213-R) re:Invent 2017
How to build a data lake with aws glue data catalog (ABD213-R)  re:Invent 2017How to build a data lake with aws glue data catalog (ABD213-R)  re:Invent 2017
How to build a data lake with aws glue data catalog (ABD213-R) re:Invent 2017
 
20180724 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
20180724 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...20180724 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
20180724 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
 
AWS WAF のマネージドルールって結局どれを選べばいいの?
AWS WAF のマネージドルールって結局どれを選べばいいの?AWS WAF のマネージドルールって結局どれを選べばいいの?
AWS WAF のマネージドルールって結局どれを選べばいいの?
 
Selenium
SeleniumSelenium
Selenium
 
Build Automation using Maven
Build Automation using Maven Build Automation using Maven
Build Automation using Maven
 
Introduction of Java GC Tuning and Java Java Mission Control
Introduction of Java GC Tuning and Java Java Mission ControlIntroduction of Java GC Tuning and Java Java Mission Control
Introduction of Java GC Tuning and Java Java Mission Control
 
Automating Backup & Archiving with AWS and CommVault
Automating Backup & Archiving with AWS and CommVaultAutomating Backup & Archiving with AWS and CommVault
Automating Backup & Archiving with AWS and CommVault
 
Rust
RustRust
Rust
 
AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...
AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...
AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...
 
있는 그대로 저장하고, 바로 분석 가능한, 새로운 관점의 데이터 애널리틱 플랫폼 - 정세웅 애널리틱 스페셜리스트, AWS
있는 그대로 저장하고, 바로 분석 가능한, 새로운 관점의 데이터 애널리틱 플랫폼 - 정세웅 애널리틱 스페셜리스트, AWS있는 그대로 저장하고, 바로 분석 가능한, 새로운 관점의 데이터 애널리틱 플랫폼 - 정세웅 애널리틱 스페셜리스트, AWS
있는 그대로 저장하고, 바로 분석 가능한, 새로운 관점의 데이터 애널리틱 플랫폼 - 정세웅 애널리틱 스페셜리스트, AWS
 
Maven
MavenMaven
Maven
 
Black Belt Online Seminar AWS Amazon S3
Black Belt Online Seminar AWS Amazon S3Black Belt Online Seminar AWS Amazon S3
Black Belt Online Seminar AWS Amazon S3
 
AWS DevOps
AWS DevOpsAWS DevOps
AWS DevOps
 
Getting Started With Cypress
Getting Started With CypressGetting Started With Cypress
Getting Started With Cypress
 
Using AWS CloudTrail Logs for Scalable, Automated Anomaly Detection - SID341 ...
Using AWS CloudTrail Logs for Scalable, Automated Anomaly Detection - SID341 ...Using AWS CloudTrail Logs for Scalable, Automated Anomaly Detection - SID341 ...
Using AWS CloudTrail Logs for Scalable, Automated Anomaly Detection - SID341 ...
 

En vedette

Groovy presentation.
Groovy presentation.Groovy presentation.
Groovy presentation.Infinity
 
Présentation Groovy
Présentation GroovyPrésentation Groovy
Présentation Groovyguest6e3bed
 
Présentation Groovy
Présentation GroovyPrésentation Groovy
Présentation GroovyJS Bournival
 
Application Architectures in Grails
Application Architectures in GrailsApplication Architectures in Grails
Application Architectures in GrailsPeter Ledbrook
 
Família escola.13-14ppt
Família escola.13-14pptFamília escola.13-14ppt
Família escola.13-14pptROSARIO V
 
Paris grands espaces 1900
Paris grands espaces 1900Paris grands espaces 1900
Paris grands espaces 1900lys167
 
Fluctuat nec mergitur
Fluctuat nec mergiturFluctuat nec mergitur
Fluctuat nec mergiturfrancesnora
 
Présentation LinuQ "Ouverture des données à la ville de Québec : approche et ...
Présentation LinuQ "Ouverture des données à la ville de Québec : approche et ...Présentation LinuQ "Ouverture des données à la ville de Québec : approche et ...
Présentation LinuQ "Ouverture des données à la ville de Québec : approche et ...LinuQ
 
Ma présentation à la conférence des Echos sur la mobilité : Les données mais ...
Ma présentation à la conférence des Echos sur la mobilité : Les données mais ...Ma présentation à la conférence des Echos sur la mobilité : Les données mais ...
Ma présentation à la conférence des Echos sur la mobilité : Les données mais ...Gilles Martin
 
Internet mobile : percée, disparités
Internet mobile : percée, disparitésInternet mobile : percée, disparités
Internet mobile : percée, disparitésGérard Marquié
 
Planification comment faire tenir tout ensemble
Planification    comment faire tenir tout ensemblePlanification    comment faire tenir tout ensemble
Planification comment faire tenir tout ensembleAkobe Jean Stanislas Akobe
 
Moteur frein aluminium
Moteur frein aluminiumMoteur frein aluminium
Moteur frein aluminiumEuropages2
 
Entrevista EZ Revista Electricidad Perú
Entrevista EZ Revista Electricidad PerúEntrevista EZ Revista Electricidad Perú
Entrevista EZ Revista Electricidad PerúEduardo Zolezzi
 
Presentación trabajo colaborativo_wiki9_grupo1
Presentación trabajo colaborativo_wiki9_grupo1Presentación trabajo colaborativo_wiki9_grupo1
Presentación trabajo colaborativo_wiki9_grupo1edwindelgado75
 
Macroeconomía 1
Macroeconomía 1Macroeconomía 1
Macroeconomía 1Luz García
 

En vedette (20)

Groovy presentation.
Groovy presentation.Groovy presentation.
Groovy presentation.
 
Présentation Groovy
Présentation GroovyPrésentation Groovy
Présentation Groovy
 
Dynamic Languages
Dynamic LanguagesDynamic Languages
Dynamic Languages
 
Présentation Groovy
Présentation GroovyPrésentation Groovy
Présentation Groovy
 
Introduction to Grails
Introduction to GrailsIntroduction to Grails
Introduction to Grails
 
Application Architectures in Grails
Application Architectures in GrailsApplication Architectures in Grails
Application Architectures in Grails
 
Família escola.13-14ppt
Família escola.13-14pptFamília escola.13-14ppt
Família escola.13-14ppt
 
Paris grands espaces 1900
Paris grands espaces 1900Paris grands espaces 1900
Paris grands espaces 1900
 
Fluctuat nec mergitur
Fluctuat nec mergiturFluctuat nec mergitur
Fluctuat nec mergitur
 
Présentation LinuQ "Ouverture des données à la ville de Québec : approche et ...
Présentation LinuQ "Ouverture des données à la ville de Québec : approche et ...Présentation LinuQ "Ouverture des données à la ville de Québec : approche et ...
Présentation LinuQ "Ouverture des données à la ville de Québec : approche et ...
 
Ma présentation à la conférence des Echos sur la mobilité : Les données mais ...
Ma présentation à la conférence des Echos sur la mobilité : Les données mais ...Ma présentation à la conférence des Echos sur la mobilité : Les données mais ...
Ma présentation à la conférence des Echos sur la mobilité : Les données mais ...
 
Internet mobile : percée, disparités
Internet mobile : percée, disparitésInternet mobile : percée, disparités
Internet mobile : percée, disparités
 
Enseignants
EnseignantsEnseignants
Enseignants
 
Planification comment faire tenir tout ensemble
Planification    comment faire tenir tout ensemblePlanification    comment faire tenir tout ensemble
Planification comment faire tenir tout ensemble
 
Moteur frein aluminium
Moteur frein aluminiumMoteur frein aluminium
Moteur frein aluminium
 
Entrevista EZ Revista Electricidad Perú
Entrevista EZ Revista Electricidad PerúEntrevista EZ Revista Electricidad Perú
Entrevista EZ Revista Electricidad Perú
 
Presentación trabajo colaborativo_wiki9_grupo1
Presentación trabajo colaborativo_wiki9_grupo1Presentación trabajo colaborativo_wiki9_grupo1
Presentación trabajo colaborativo_wiki9_grupo1
 
Présentation congrès 2013
Présentation congrès 2013Présentation congrès 2013
Présentation congrès 2013
 
Festival Coriolis
Festival CoriolisFestival Coriolis
Festival Coriolis
 
Macroeconomía 1
Macroeconomía 1Macroeconomía 1
Macroeconomía 1
 

Similaire à Grails Un Framework Web Agile

#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniterAtsé François-Xavier KOBON
 
Angluars js
Angluars jsAngluars js
Angluars jsRYMAA
 
Google App Engine For Java
Google App Engine For JavaGoogle App Engine For Java
Google App Engine For Javatcouery
 
Introduction au Framework AngularJs
Introduction au Framework AngularJsIntroduction au Framework AngularJs
Introduction au Framework AngularJsRadhoueneRouached
 
Angular développer des applications .pdf
Angular développer des applications .pdfAngular développer des applications .pdf
Angular développer des applications .pdfimenhamada17
 
Aperçu de RequireJS
Aperçu de RequireJSAperçu de RequireJS
Aperçu de RequireJSVISEO
 
Présentation Gradle au LyonJUG par Grégory Boissinot - Zenika
Présentation Gradle au LyonJUG par Grégory Boissinot - ZenikaPrésentation Gradle au LyonJUG par Grégory Boissinot - Zenika
Présentation Gradle au LyonJUG par Grégory Boissinot - ZenikaZenika
 
Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Xavier NOPRE
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflineDNG Consulting
 
Valtech - Décollage d’une plateforme digitale vers le Cloud Azure
Valtech - Décollage d’une plateforme digitale vers le Cloud AzureValtech - Décollage d’une plateforme digitale vers le Cloud Azure
Valtech - Décollage d’une plateforme digitale vers le Cloud AzureValtech
 
AFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIAFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIRomain Cambien
 

Similaire à Grails Un Framework Web Agile (20)

#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
 
Angluars js
Angluars jsAngluars js
Angluars js
 
Google App Engine For Java
Google App Engine For JavaGoogle App Engine For Java
Google App Engine For Java
 
jQuery vs AngularJS
jQuery vs AngularJS jQuery vs AngularJS
jQuery vs AngularJS
 
Gradle_LyonJUG
Gradle_LyonJUGGradle_LyonJUG
Gradle_LyonJUG
 
Introduction au Framework AngularJs
Introduction au Framework AngularJsIntroduction au Framework AngularJs
Introduction au Framework AngularJs
 
Prezentare ASP.Net.pptx
Prezentare ASP.Net.pptxPrezentare ASP.Net.pptx
Prezentare ASP.Net.pptx
 
Angular développer des applications .pdf
Angular développer des applications .pdfAngular développer des applications .pdf
Angular développer des applications .pdf
 
Aperçu de RequireJS
Aperçu de RequireJSAperçu de RequireJS
Aperçu de RequireJS
 
Support cours angular
Support cours angularSupport cours angular
Support cours angular
 
[Tuto] Big datatrack : Web Tracker
[Tuto] Big datatrack : Web Tracker[Tuto] Big datatrack : Web Tracker
[Tuto] Big datatrack : Web Tracker
 
Présentation Gradle au LyonJUG par Grégory Boissinot - Zenika
Présentation Gradle au LyonJUG par Grégory Boissinot - ZenikaPrésentation Gradle au LyonJUG par Grégory Boissinot - Zenika
Présentation Gradle au LyonJUG par Grégory Boissinot - Zenika
 
Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013
 
Meet up sqli lyon 09-2015 - Gradle
Meet up sqli lyon 09-2015 - GradleMeet up sqli lyon 09-2015 - Gradle
Meet up sqli lyon 09-2015 - Gradle
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'Offline
 
Valtech - Décollage d’une plateforme digitale vers le Cloud Azure
Valtech - Décollage d’une plateforme digitale vers le Cloud AzureValtech - Décollage d’une plateforme digitale vers le Cloud Azure
Valtech - Décollage d’une plateforme digitale vers le Cloud Azure
 
CV REBAI Hamida
CV REBAI HamidaCV REBAI Hamida
CV REBAI Hamida
 
AFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIAFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open API
 
Formation gwt
Formation gwtFormation gwt
Formation gwt
 
Gradle_ToulouseJUG
Gradle_ToulouseJUGGradle_ToulouseJUG
Gradle_ToulouseJUG
 

Grails Un Framework Web Agile