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

Weisfeiler and Leman Go Neural: Higher-order Graph Neural Networks
Weisfeiler and Leman Go Neural: Higher-order Graph Neural Networks Weisfeiler and Leman Go Neural: Higher-order Graph Neural Networks
Weisfeiler and Leman Go Neural: Higher-order Graph Neural Networks Christopher Morris
 
Generative Adversarial Networks (GANs)
Generative Adversarial Networks (GANs)Generative Adversarial Networks (GANs)
Generative Adversarial Networks (GANs)Amol Patil
 
Research of adversarial example on a deep neural network
Research of adversarial example on a deep neural networkResearch of adversarial example on a deep neural network
Research of adversarial example on a deep neural networkNAVER Engineering
 
Defending deep learning from adversarial attacks
Defending deep learning from adversarial attacksDefending deep learning from adversarial attacks
Defending deep learning from adversarial attacksSvetlana Levitan, PhD
 
Why Aren't You Using Git Flow?
Why Aren't You Using Git Flow?Why Aren't You Using Git Flow?
Why Aren't You Using Git Flow?John Congdon
 
Large-scale Video Classification with Convolutional Neural Network
Large-scale Video Classification with Convolutional Neural NetworkLarge-scale Video Classification with Convolutional Neural Network
Large-scale Video Classification with Convolutional Neural NetworkKhalidKhan412
 
Adversarial Attacks on A.I. Systems — NextCon, Jan 2019
Adversarial Attacks on A.I. Systems — NextCon, Jan 2019Adversarial Attacks on A.I. Systems — NextCon, Jan 2019
Adversarial Attacks on A.I. Systems — NextCon, Jan 2019anant90
 
Photo-realistic Single Image Super-resolution using a Generative Adversarial ...
Photo-realistic Single Image Super-resolution using a Generative Adversarial ...Photo-realistic Single Image Super-resolution using a Generative Adversarial ...
Photo-realistic Single Image Super-resolution using a Generative Adversarial ...Hansol Kang
 
Basic Generative Adversarial Networks
Basic Generative Adversarial NetworksBasic Generative Adversarial Networks
Basic Generative Adversarial NetworksDong Heon Cho
 
SLAM-베이즈필터와 칼만필터
SLAM-베이즈필터와 칼만필터SLAM-베이즈필터와 칼만필터
SLAM-베이즈필터와 칼만필터jdo
 
Anomaly Detection Using Generative Adversarial Network(GAN)
Anomaly Detection Using Generative Adversarial Network(GAN)Anomaly Detection Using Generative Adversarial Network(GAN)
Anomaly Detection Using Generative Adversarial Network(GAN)Asha Aher
 
Convolutional neural network from VGG to DenseNet
Convolutional neural network from VGG to DenseNetConvolutional neural network from VGG to DenseNet
Convolutional neural network from VGG to DenseNetSungminYou
 
Webinar on Graph Neural Networks
Webinar on Graph Neural NetworksWebinar on Graph Neural Networks
Webinar on Graph Neural NetworksLucaCrociani1
 
Generative Adversarial Networks
Generative Adversarial NetworksGenerative Adversarial Networks
Generative Adversarial NetworksMustafa Yagmur
 
CXR-ACGAN: Auxiliary Classifier GAN for Conditional Generation of Chest X-Ray...
CXR-ACGAN: Auxiliary Classifier GAN for Conditional Generation of Chest X-Ray...CXR-ACGAN: Auxiliary Classifier GAN for Conditional Generation of Chest X-Ray...
CXR-ACGAN: Auxiliary Classifier GAN for Conditional Generation of Chest X-Ray...Giorgio Carbone
 

Tendances (17)

Weisfeiler and Leman Go Neural: Higher-order Graph Neural Networks
Weisfeiler and Leman Go Neural: Higher-order Graph Neural Networks Weisfeiler and Leman Go Neural: Higher-order Graph Neural Networks
Weisfeiler and Leman Go Neural: Higher-order Graph Neural Networks
 
Generative Adversarial Networks (GANs)
Generative Adversarial Networks (GANs)Generative Adversarial Networks (GANs)
Generative Adversarial Networks (GANs)
 
Research of adversarial example on a deep neural network
Research of adversarial example on a deep neural networkResearch of adversarial example on a deep neural network
Research of adversarial example on a deep neural network
 
Defending deep learning from adversarial attacks
Defending deep learning from adversarial attacksDefending deep learning from adversarial attacks
Defending deep learning from adversarial attacks
 
Why Aren't You Using Git Flow?
Why Aren't You Using Git Flow?Why Aren't You Using Git Flow?
Why Aren't You Using Git Flow?
 
Large-scale Video Classification with Convolutional Neural Network
Large-scale Video Classification with Convolutional Neural NetworkLarge-scale Video Classification with Convolutional Neural Network
Large-scale Video Classification with Convolutional Neural Network
 
Adversarial Attacks on A.I. Systems — NextCon, Jan 2019
Adversarial Attacks on A.I. Systems — NextCon, Jan 2019Adversarial Attacks on A.I. Systems — NextCon, Jan 2019
Adversarial Attacks on A.I. Systems — NextCon, Jan 2019
 
Photo-realistic Single Image Super-resolution using a Generative Adversarial ...
Photo-realistic Single Image Super-resolution using a Generative Adversarial ...Photo-realistic Single Image Super-resolution using a Generative Adversarial ...
Photo-realistic Single Image Super-resolution using a Generative Adversarial ...
 
LeNet-5
LeNet-5LeNet-5
LeNet-5
 
Basic Generative Adversarial Networks
Basic Generative Adversarial NetworksBasic Generative Adversarial Networks
Basic Generative Adversarial Networks
 
SLAM-베이즈필터와 칼만필터
SLAM-베이즈필터와 칼만필터SLAM-베이즈필터와 칼만필터
SLAM-베이즈필터와 칼만필터
 
Anomaly Detection Using Generative Adversarial Network(GAN)
Anomaly Detection Using Generative Adversarial Network(GAN)Anomaly Detection Using Generative Adversarial Network(GAN)
Anomaly Detection Using Generative Adversarial Network(GAN)
 
Convolutional neural network from VGG to DenseNet
Convolutional neural network from VGG to DenseNetConvolutional neural network from VGG to DenseNet
Convolutional neural network from VGG to DenseNet
 
Webinar on Graph Neural Networks
Webinar on Graph Neural NetworksWebinar on Graph Neural Networks
Webinar on Graph Neural Networks
 
Generative Adversarial Networks
Generative Adversarial NetworksGenerative Adversarial Networks
Generative Adversarial Networks
 
Security of Machine Learning
Security of Machine LearningSecurity of Machine Learning
Security of Machine Learning
 
CXR-ACGAN: Auxiliary Classifier GAN for Conditional Generation of Chest X-Ray...
CXR-ACGAN: Auxiliary Classifier GAN for Conditional Generation of Chest X-Ray...CXR-ACGAN: Auxiliary Classifier GAN for Conditional Generation of Chest X-Ray...
CXR-ACGAN: Auxiliary Classifier GAN for Conditional Generation of Chest X-Ray...
 

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