Groovy & Grails. Langage de script basé sur Java appliqué dans un environnement JEE



Documents pareils
THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

les techniques d'extraction, les formulaires et intégration dans un site WEB

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

BES WEBDEVELOPER ACTIVITÉ RÔLE

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Programmation Web. Madalina Croitoru IUT Montpellier

Devenez un véritable développeur web en 3 mois!

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Vulgarisation Java EE Java EE, c est quoi?

Paul FLYE SAINTE MARIE

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Expert technique J2EE

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Hébergement de site web Damien Nouvel

Serveur d Applications Web : WebObjects

SQL Parser XML Xquery : Approche de détection des injections SQL

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

PHP 5.4 Développez un site web dynamique et interactif

Module BD et sites WEB

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Notre Catalogue des Formations IT / 2015

Visual Paradigm Contraintes inter-associations

CQP Développeur Nouvelles Technologies (DNT)

Application Web et J2EE

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

Joomla! Création et administration d'un site web - Version numérique

SITE WEB E-COMMERCE ET VENTE A DISTANCE

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

7 villa de la citadelle Né le 13 mai Arcueil Nationalité : Française. Développeur Web JEE COMPÉTENCES

Mise en œuvre des serveurs d application

Karim EL KHALIFA Web developer

Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG

Master Informatique et Systèmes. Architecture des Systèmes d Information. 03 Architecture Logicielle et Technique

Cours en ligne Développement Java pour le web

Alfstore workflow framework Spécification technique

Présentation de SOFI 2.0

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

DRUPAL Réalisez des développements professionnels avec PHP (2ième édition)

Cyrille GUERIN 823, place Soulanges Brossard, J4X1L8

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Olivier Deheurles Ingénieur conception et développement.net

«Clustering» et «Load balancing» avec Zope et ZEO

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI

Présentation de la solution Open Source «Vulture» Version 2.0

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Nouveautés de Drupal 8. Léon

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

Cours 1: Java et les objets

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

GECKO Software. Introduction à MOBIDICK. Modular But Integrated Application Framework

Architectures Web Services RESTful

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

LEA.C5. Développement de sites Web transactionnels

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1

L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager

Bases Java - Eclipse / Netbeans

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

TP1 : Initiation à Java et Eclipse

Bonnes pratiques de développement JavaScript

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

Automatisation de l administration système

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Architectures web/bases de données

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Introduction à. Oracle Application Express

Les frameworks au coeur des applications web

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

Projet de Java Enterprise Edition

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

ASP.NET MVC 4 Développement d'applications Web en C# - Concepts et bonnes pratiques

25 mars. Tutoriel sur Laravel. Préparé par : Lydiane Beaulne-Bélisle. Ceci est un tutorial qui montre comment débuter avec le Framework PHP Laravel.

La notion de portail communautaire

SYSTÈMES D INFORMATIONS

Outil de planification en ligne pour des créations de rendez-vous ou de sondage

Construction et déploiement d applications Java avec Maven, Archiva, Groovy et Jenkins

Point sur les solutions de développement d apps pour les périphériques mobiles

<Insert Picture Here>ApExposé. Cédric MYLLE 05 Février Exposé Système et Réseaux : ApEx, Application Express d Oracle

CHEF DE PROJET - DÉVELOPPEUR EXPÉRIMENT É PHP - JAVA -.NET. 28 ans - 7 ans d'expérience

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Perl Console. Votre compagnon pour développer en Perl. Les Journées du Perl , 17 novembre, Lyon. Alexis Sukrieh

Comparatif CMS. Laurent BAUREN S Bérenger VIDAL Julie NOVI Tautu IENFA

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Compte Rendu d intégration d application

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

AngularJS pour une application d'entreprise

Transcription:

Groovy & Grails Langage de script basé sur Java appliqué dans un environnement JEE Martin Le Bas 1 Xposé 2010

Plan Introduction Groovy Grails Conclusion Références Plan de la présentation Introduction Groovy Grails Du Java au Groovy Le langage Groovy Groovy avancé Architecture Créer une application web Conclusion Références 2

Plan Introduction Groovy Grails Conclusion Références Pourquoi ce nouveau langage? Caractéristiques d un langage Typage : Fort? Faible? Langage Objet? Langage de Script? Flexibilité? Maintenance? Productivité? Langages statiques : Java, C#, C++ Langages dynamiques : Perl, Python, Ruby, PHP Plateformes.Net et Java : IronRuby, IronPython, JRuby... 3

Du java au Groovy Le langage Groovy Groovy avancé C est quoi? Groovy : késako? Langage de script utilisant la syntaxe de Java Compatibilité du code Java Faiblement typé Vérification des types à l'exécution Comment? Utilise la JVM : Profite du JIT Compiler Compilation et Exécution javac & java groovy 4

5

Du java au Groovy Le langage Groovy Groovy avancé Simplification du code Getters et Setters implémentés par défaut. Utilisation simplifiée des setters : Typage dynamique : Vérification à l'exécution Simplification de la concaténation Retourne l objet de la dernière ligne d une méthode Suppression des points virgules Suppression du main : Script 6

7

Du java au Groovy Le langage Groovy Groovy avancé Chaines de caractères Le langage Groovy Constructeur Méthodes Closures Collections Opérateurs Expressions régulières 8

Du java au Groovy Le langage Groovy Groovy avancé Slashy string Chaines de caractères Multiline string GString 9

Du java au Groovy Le langage Groovy Groovy avancé Constructeur Utilisation d une Map pour initialiser un GroovyBean. 10

Du java au Groovy Le langage Groovy Groovy avancé Méthodes public par défaut pas de type pas de «return» Peut être utilisé comme une «fonction» 11

Du java au Groovy Le langage Groovy Groovy avancé Sans argument Closure Avec arguments Crée une classe interne avec une méthode «call» qui exécute les instructions. Comme pour les méthodes, les parenthèses sont facultatives si il existe des arguments. Peut être passé en argument d une méthode ou d une autre closure. 12

Du java au Groovy Le langage Groovy Groovy avancé Méthode & Closure Passage d une closure à une méthode. 13

Du java au Groovy Le langage Groovy Groovy avancé Collections List Set 14

Du java au Groovy Le langage Groovy Groovy avancé Collections Map Range 15

Du java au Groovy Le langage Groovy Groovy avancé Opérateurs Possibilité de surcharger l opérateur : a + b a * b a << b a & b a++ a[b] a[b]=c a.plus(b) a.multiply(b) a.leftshift(b) a.and(b) a.next() a.getat(b) a.putat(b,c) 16

Du java au Groovy Le langage Groovy Groovy avancé Nouveaux opérateurs : Spread operator «*.» Opérateurs 17

Du java au Groovy Le langage Groovy Groovy avancé Nouveaux opérateurs : Elvis operator «?:» Opérateurs Safe navigation operator «?.» Field operator «.@» 18

Du java au Groovy Le langage Groovy Groovy avancé Expressions régulières Match operator : ==~ Find operator : =~ 19

Du java au Groovy Le langage Groovy Groovy avancé Expressions régulières Pattern operator : ~string 20

Du java au Groovy Le langage Groovy Groovy avancé Groovy avancé Meta Object Protocol (MOP) Gestion d XML Templates Tests unitaires 21

Du java au Groovy Le langage Groovy Groovy avancé Exemple simple Meta Object Protocol 22

Du java au Groovy Le langage Groovy Groovy avancé Meta Object Protocol Autre exemple : Foreach 23

Du java au Groovy Le langage Groovy Groovy avancé XML Génération d XML avec un MarkupBuilder 24

Du java au Groovy Le langage Groovy Groovy avancé XML Parsing d XML avec un XmlSlurper 25

Du java au Groovy Le langage Groovy Groovy avancé Templates Utilisation du SimpleTemplateEngine 26

Du java au Groovy Le langage Groovy Groovy avancé Templates Utilisation du SimpleTemplateEngine 26

Du java au Groovy Le langage Groovy Groovy avancé Groovy Unit Testing Primordial Tests Unitaires Facilite la maintenance Groovy étend JUnit pour l adapter aux particularités du langage. assertarrayequals assertcontains assertequals assertinspect assertscript etc... 27

28

28

Architecture Créer une application web GRAILS Architecture Créer une application web scaffolding controller domain validation services views taglib plug-in 29

Architecture Créer une application web Architecture Application GRAILS GRAILS Framework Java Enterprise Edition Groovy Java Virtual Machine 30

Architecture Créer une application web Architecture Application GRAILS SiteMesh (OpenSymphony) GRAILS Framework Java Enterprise Edition Groovy Java Virtual Machine 30

Architecture Créer une application web Architecture Application GRAILS SiteMesh (OpenSymphony) GRAILS SPRING Framework Java Enterprise Edition Groovy Java Virtual Machine 30

Architecture Créer une application web Architecture Application GRAILS SiteMesh (OpenSymphony) GRAILS SPRING Framework GORM Hibernate HSQLDB Java Enterprise Edition Groovy Java Virtual Machine 30

Architecture Créer une application web Architecture Controllers Application GRAILS Views (gsp) Services & Plug-in Domains SiteMesh (OpenSymphony) GRAILS SPRING Framework GORM Hibernate HSQLDB Java Enterprise Edition Groovy Java Virtual Machine 30

Architecture Créer une application web Architecture Controllers Application GRAILS Views (gsp) Services & Plug-in Domains SiteMesh (OpenSymphony) GRAILS SPRING Framework GORM Hibernate HSQLDB Java Enterprise Edition Groovy Java Virtual Machine 30

Architecture Créer une application web Architecture Controllers Application GRAILS Views (gsp) Services & Plug-in Domains SiteMesh (OpenSymphony) GRAILS SPRING Framework GORM Hibernate HSQLDB Java Enterprise Edition Groovy Java Virtual Machine 30

Architecture Créer une application web Architecture Controllers Application GRAILS Views (gsp) Services & Plug-in Domains SiteMesh (OpenSymphony) GRAILS SPRING Framework GORM Hibernate HSQLDB Java Enterprise Edition Groovy Java Virtual Machine 30

Architecture Créer une application web Architecture Controllers Application GRAILS Views (gsp) Services & Plug-in Domains SiteMesh (OpenSymphony) GRAILS SPRING Framework GORM Hibernate HSQLDB Java Enterprise Edition Groovy Java Virtual Machine 30

Architecture Créer une application web Architecture Controllers Application GRAILS Views (gsp) Services & Plug-in Domains SiteMesh (OpenSymphony) GRAILS SPRING Framework GORM Hibernate HSQLDB Java Enterprise Edition Groovy Java Virtual Machine 30

Architecture Créer une application web Architecture Controllers Application GRAILS Views (gsp) Services & Plug-in Domains SiteMesh (OpenSymphony) GRAILS SPRING Framework GORM Hibernate Gant HSQLDB Java Enterprise Edition Groovy Java Virtual Machine 30

Architecture Créer une application web Les commandes grails grails create-app myapp grails create-domain-class my.pckg.domainclass grails generate-controller my.pckg.domainclass grails generate-views my.pckg.domainclass grails create-service my.pckg.servicename grails clean grails run-app 31

Architecture Créer une application web Scaffolding Génération des vues et des «Controllers» en fonction de la définition des «Domains». Vues & Actions générées : Création Edition Suppression Affichage Liste Le scaffolding peut être dynamique ou statique. 32

33

Architecture Créer une application web Controller Reçoit la requête et effectue le traitement en fonction de l action demandée. Mappage des URLs : http://<... >/controller/action/ Exemple : 34

Architecture Créer une application web Domain Modélise les données Permet de mapper les objets dans une base de données. Définit le comportement de l application. Facilite la validation des formulaires. Query caching MOP : get(), save(), list(), findbyfirstname(), etc... 35

Architecture Créer une application web Validation 36

Architecture Créer une application web Validation 36

Architecture Créer une application web Services Scope (durée de vie) singleton session conversation flow flash request prototype Utilisation d un service par «injection» 37

Architecture Créer une application web GSP : Groovy Server Page Vues Utilisation de SiteMesh pour «décorer» les pages. Intégration de librairies AJAX dans le framework. (taglib) 38

Architecture Créer une application web TagLib Grails 39

Architecture Créer une application web TagLib Grails 39

Architecture Créer une application web Plug-in Une liste d extensions est disponible sur le site de Grails. Service de mail Authentification Moteur de recherche RSS Paiement en ligne etc... Possibilité de créer sa propre extension. Installation en utilisant un système repository. (Similaire à la commande apt-get de Debian) 40

Architecture Créer une application web Plug-in 41

Plan Introduction Groovy Grails Conclusion Références Conclusion Groovy Apporte plus de flexibilité au développeur. Gain de productivité? Maintenance? Grails Permet de développer rapidement une application. Facilité à mettre en oeuvre. Travail en équipe? Taille du projet? Mon opinion 42

Plan Introduction Groovy Grails Conclusion Références Références «Beginning Groovy and Grails», Apress (disponible sur Amazon) Site officiel de Groovy http://groovy.codehaus.org/ Site officiel de Grails http://www.grails.org/ La documentation indispensable : http://grails.org/doc/latest/ 43