Grails est un framework applicatif à l’ancienne, utilisant le langage Groovy (donc la JVM) et basé sur Spring Boot. À l’inverse des frameworks type "Microservice", beaucoup de dépendances sont incluses par défaut, aidant à la mise en route rapide. L’injection de dépendance est faite à la compilation en utilisant Micronaut (qui est un Microservice) depuis la version 4. La persistance des données est réalisée par Gorm, qui permet d'utiliser Hibernate, GraphQL, Cassandra ou MongoDB.
Le principe de Grails est “convention over configuration”. Le rôle d’une classe sera déterminé par son répertoire. Une telle classe sera dite “artéfact” dans la terminologie de ce framework.
Exemples d’artéfacts :
- job pour planifier des tâches, les classes seront définies dans le répertoire job ;
- service classes qui s’instancient automatiquement et peuvent être injectées dans d’autres artéfacts ;
- controllers pour grouper les actions accessibles depuis le Web (petit goût de MVC);
- domain pour les objets persistants utilisés par Gorm ;
et d’autres.
On peut utiliser le langage Java si besoin, mais l'annotation de classe @GrailsCompileStatic
offre déjà de bonnes performances.
Les applications Grails utilisent depuis la version 3 Gradle pour la gestion du build et des dépendances.
La version 5.0.0 est une mise à niveau des principales dépendances : passage à Groovy 3.0.7, gradle 7.2, Gorm 7.1, Micronaut 3 pour l’injection. Les versions testées de l’OpenJDK vont du 1.8 à la version 14. Le support de la version 17 du Jdk sera effectif avec Groovy 4, donc pour on sait pas vraiment quand.
J’allais oublier de préciser que la source d’inspiration plus ou moins évidente est RoR (Ruby on Rails).
Grails (page en anglais)
page de Gorm
Guide utilisateur en anglais
# Merci de l’info...
Posté par bepolymathe . Évalué à 3. Dernière modification le 15 octobre 2021 à 12:22.
… on va pouvoir faire des plugins pour Freeplane !
[^] # Re: Merci de l’info...
Posté par steph1978 . Évalué à 3.
Si on parle de Freeplane, je vois pas le rapport. Qqun pour éclairer ma lanterne ?
# utilisation ?
Posté par Papey . Évalué à 4.
Y a-t-il des projets/entreprises plus ou moins connus qui utilisent Grails de manière significative ?
[^] # Re: utilisation ?
Posté par YBoy360 (site web personnel) . Évalué à 6. Dernière modification le 15 octobre 2021 à 18:18.
Difficile de te répondre précisément, si tu regardes leur page tu peux avoir une petite idée. Te dire que c'est l'équivalent du PHP avec Drupal et autres Wordpress, non clairement, mais ce n'est pas le même usage : tu peux réutiliser l'écosystème Java, tu n'es pas limité aux frontaux Web (je sais que l'on est vendredi, rien n'empêche de faire un ERP en n'importe quel langage), donc tu n'es pas isolé.
J'ai travaillé pour Drouot, tous les sites des commissaires priseurs par exemple étaient réalisés avec Grails. C'était un FW populaire il y a une dizaine d'années. Nos sites sont réalisés avec ce FW, des applications externes que nous utilisons aussi, comme Rundeck.
Aujourd'hui, ce Framework essai de se mettre à jour, la proximité avec Micronaut est un plus (du même auteur). Attention cela dit, pas mal de plugins qui spécialisent l'utilisation de librairies Java communes ne sont pas bien maintenus, et apportent peu de plus values par rapport à l'usage de Java directement. Les choses semblent cependant s'améliorer au niveau contributions, et comme dit plus haut, tu n'es pas isolé, tu as accès à tout l'écosystème Java.
En terme de pérennité, une chose rassurante pour ce framework est l'usage de briques de bases très communes, comme Gradle, Spring, Micronaut… Avant la version 3, tout était intégré directement dans grails (hormis Spring), ce qui était inquiétant. Je dirais que c'est le moment de l'utiliser si tu à besoin de réaliser des logiciels intégrés pour l'entreprise (donc pas purement Web), que tu maîtrise Groovy et que tu utilises/apprécies les DSL (c'est un facteur déterminant pour nous) ou que les Microservices ne te satisfont pas.
Les performances ont aussi progressé dans le sens ou c'est proche de Java (nos vieux sites n'ont pas de cache activé, mais s'affichent rapidement, comme sur ma page perso, nous allons bientôt les renouveler intégralement).
Bref, nous l'utilisons pour tout hors ERP (nous utilisons Axelor, 400 salariés) : Ged, CRM, CMS, Gestion de projets, génération documentaire, gestion des stocks de certaines filiales, Scheduler, BI… avec environ 150 utilisateurs, sur 4 continent, pas de problème (je n'en parlerai pas sinon :). On se trouve rapidement efficace avec ce FW, et ça donne envie de faire plus avec.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.