Présentation de GrailsUn Framework de développement Web agilepage 2N. ADOUANI - février 10
SommaireIntroduction
Un peu d’histoire
Architecture, principes et composantes de Grails
Grails et les méthodologies agiles
Démos
Conclusionspage 3N. ADOUANI - février 10
IntroductionN. ADOUANI - février 10page 4Grails 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, Sitemeshet 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 »
ObjectifsL’objectif de cette présentation est :d’introduire le Framework Grails, son architecture et ses principes
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 10page 5
Un peu d’histoirepage 6N. ADOUANI - février 10
Un peu d’histoireN. ADOUANI - février 10page 7Graeme Rocher : le fondateur du projet GrailsGuillaume Laforge: le chef du projet GroovyIls ont créé la société G2One qui a été rachetée par SpringSource en Novembre 2008
Un peu d’histoireN. ADOUANI - février 10page 8Grails = Pluriel de « grail » en anglais = Les Graals, d’où le logo du FrameworkGrails = Groovy on Rails par analogie au Framework Ruby on Rails
Grails, plus de détailspage 9N. ADOUANI - février 10
L’architecturepage 10Le langageGroovyPlugin xfirePlugin CMSPlugin GAEPlugin FlexPlugin jQueryPlugin AcegiPlugin MavenPlugin CouchDBGrailsPlugin iWebKitPlugin SearchablePlugin RemotePaginationPlugin QuartzHSQL dbJUnitJettyLog4jJava EESpringHibernateSiteMeshLe langage JavaLe java Development Kit (JDK)La Java Virual MachineN. ADOUANI - février 10
Principes de Grails (1)Convention over configuration
Scaffolding (génération de code)
Tests unitaires
Les pluginsN. ADOUANI - février 10page 11
Principes de Grails (2) Convention over configurationConfiguration basée sur les conventions (Convention over configuration) est le principe selon lequel les applications utilisent des conventions à la place des fichiers de configuration.
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 10page 12
Principes de Grails (3)ScaffoldingScaffolding ou (échafaudage en français) consiste à générer le code de l’application à partir de la définition des objets persistants
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 10page 13
Principes de Grails (4)Tests unitairesGrails intègre par défaut le Framework JUnit pour les tests unitaires
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 10page 14
Principes de Grails (5)Système de pluginsGrails est basé sur un système de Plugins qui permettent de s’intégrer avec différents Frameworks et librairies, pour couvrir multiples domaines:
Sécurité: Acegi
Mapping Objet Relationnel: JPA et JDO
Web Service : xfire, Spring WS
Web Flow : SpringWebFlow

Grails Un Framework Web Agile

  • 2.
    Présentation de GrailsUnFramework de développement Web agilepage 2N. ADOUANI - février 10
  • 3.
  • 4.
  • 5.
    Architecture, principes etcomposantes de Grails
  • 6.
    Grails et lesméthodologies agiles
  • 7.
  • 8.
  • 9.
    IntroductionN. ADOUANI -février 10page 4Grails 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, Sitemeshet 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 »
  • 10.
    ObjectifsL’objectif de cetteprésentation est :d’introduire le Framework Grails, son architecture et ses principes
  • 11.
    de faire unrapprochement entre Grails et les méthodologies agiles
  • 12.
    montrer des exemplesd’intégration de Grails avec les Frameworks AJAX, FLEX, etc…N. ADOUANI - février 10page 5
  • 13.
    Un peu d’histoirepage6N. ADOUANI - février 10
  • 14.
    Un peu d’histoireN.ADOUANI - février 10page 7Graeme Rocher : le fondateur du projet GrailsGuillaume Laforge: le chef du projet GroovyIls ont créé la société G2One qui a été rachetée par SpringSource en Novembre 2008
  • 15.
    Un peu d’histoireN.ADOUANI - février 10page 8Grails = Pluriel de « grail » en anglais = Les Graals, d’où le logo du FrameworkGrails = Groovy on Rails par analogie au Framework Ruby on Rails
  • 16.
    Grails, plus dedétailspage 9N. ADOUANI - février 10
  • 17.
    L’architecturepage 10Le langageGroovyPluginxfirePlugin CMSPlugin GAEPlugin FlexPlugin jQueryPlugin AcegiPlugin MavenPlugin CouchDBGrailsPlugin iWebKitPlugin SearchablePlugin RemotePaginationPlugin QuartzHSQL dbJUnitJettyLog4jJava EESpringHibernateSiteMeshLe langage JavaLe java Development Kit (JDK)La Java Virual MachineN. ADOUANI - février 10
  • 18.
    Principes de Grails(1)Convention over configuration
  • 19.
  • 20.
  • 21.
    Les pluginsN. ADOUANI- février 10page 11
  • 22.
    Principes de Grails(2) Convention over configurationConfiguration basée sur les conventions (Convention over configuration) est le principe selon lequel les applications utilisent des conventions à la place des fichiers de configuration.
  • 23.
    Il est aussipossible d’utiliser des fichiers de config si le besoin se fait sentir
  • 24.
    Exemple: le nomd’une classe persistante est identique au nom de la table correspondante dans une base de données.N. ADOUANI - février 10page 12
  • 25.
    Principes de Grails(3)ScaffoldingScaffolding ou (échafaudage en français) consiste à générer le code de l’application à partir de la définition des objets persistants
  • 26.
    Cette technique estsouvent utilisée pour générer les pages CRUD des applications selon le modèle MVC
  • 27.
    Il existe deuxtypes de scaffolding en Grails:
  • 28.
    Dynamique : lescontrô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
  • 29.
    Statique : lecode 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 10page 13
  • 30.
    Principes de Grails(4)Tests unitairesGrails intègre par défaut le Framework JUnit pour les tests unitaires
  • 31.
    Grails fait ladifférence entre:
  • 32.
    Tests unitaires: destests 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)
  • 33.
    Tests d’intégration: destests qui ont accès à tout l’environnement de l’application (accès à la base de données, à la session, la requete HTTP…
  • 34.
    Tests fonctionnels automatisésde l’IHM, type Selenium ou FitNessN. ADOUANI - février 10page 14
  • 35.
    Principes de Grails(5)Système de pluginsGrails est basé sur un système de Plugins qui permettent de s’intégrer avec différents Frameworks et librairies, pour couvrir multiples domaines:
  • 36.
  • 37.
  • 38.
    Web Service :xfire, Spring WS
  • 39.
    Web Flow :SpringWebFlow