Indice

Grails
Grails è un framework open source per applicazioni web progettato per consentire un'elevata produttività. È basato sul linguaggio di programmazione Groovy, un linguaggio dinamico eseguito sulla piattaforma Java. Grails è stato creato per dare agli sviluppatori Java funzionalità per lo sviluppo di applicazioni web che non erano mai state disponibili prima. Siccome Grails è un framework web, non include nessuno strumento per servire altre architetture. Il lavoro di sviluppo cominciò nel luglio 2005 e la versione 0.1 venne pubblicata il 29 marzo 2006.
Panoramica
Grails è stato sviluppato con molteplici obiettivi:

Produttività
Grails ha tre caratteristiche che aumentano significativamente la produttività degli sviluppatori rispetto ai framework Java tradizionali:
Nessuna configurazione XML
Tipicamente, creare un'applicazione web in Java comporta la configurazione di ambienti e framework prima e durante lo sviluppo. Questa configurazione è molto spesso contenuta in file XML per facilitare il lavoro ed evitare di introdurre queste configurazioni all'interno del codice applicativo. L'XML fu inizialmente utilizzato in quanto dava maggiore coerenza alla configurazione delle applicazioni. Negli ultimi anni è però divenuto evidente che sebbene l'XML sia ottimo per la configurazione, esso diventa tedioso per la preparazione di un ambiente. Questo può incidere negativamente sulla produttività in quanto gli sviluppatori perdono tempo a comprendere e manutenere la configurazione del framework con il crescere dell'applicazione. Aggiungere o cambiare le funzionalità di un'applicazione che fa uso di una configurazione XML aggiunge un passo aggiuntivo allo scrivere il codice applicativo, che rallenta la produttività e può ridurre l'agilità dell'intero processo. Grails elimina la necessità di aggiungere configurazioni in file XML. Il framework fa invece uso di una serie di regole o convenzioni, analizzando il codice delle applicazioni basate su Grails. Per esempio, una classe il cui nome termina con Controller (ad esempio BookController) viene considerato un controller web.

Ambiente di sviluppo pronto all'uso
Utilizzando i tradizionali strumenti per la programmazione Java, la configurazione degli ambienti è a carico del programmatore. Grails fornisce fin dall'installazione un ambiente di sviluppo già operativo che non necessita di configurazione per poter iniziare a sviluppare. Tutte le librerie necessarie sono incluse nella distribuzione di Grails, che prepara automaticamente l'ambiente di deploy/esecuzione.
Funzionalità disponibili tramite Mixin
Grails fornisce metodi dinamici per diverse classi tramite mixin. Un mixin è una funzionalità (nel caso di Grails i mixin sono metodi) aggiunta dinamicamente ad una classe come se fosse compilata nel programma. Questi metodi dinamici permettono agli sviluppatori di eseguire operazioni senza dover implementare interfacce o estendere le classi base. Grails fornisce metodi dinamici in base al tipo di classe. Per esempio le classi di dominio hanno metodi per automatizzare le operazioni di persistenza come save, delete e find.