Obiettivi
Migliorare l’espressività di una tipica applicazione Intranet utilizzando i DSL Groovy (Domain-Specific Languages).
I DSL sono tipizzati staticamente, la maggior parte degli errori viene rilevata durante il ciclo di sviluppo e l’IDE può completare automaticamente il codice più facilmente.
Il framework Taack consente inoltre di abbreviare il consueto codice applicativo evitando le GSP e gestendo le operazioni comuni (filtrare, salvare, mostrare).
Architettura
Il framework Taack dipende dal framework applicativo Grails. Grails fornisce il contesto di runtime. L’infrastruttura Grails presenta le seguenti caratteristiche:
-
Basata su SpringBoot (e Micronaut)
-
Utilizza Groovy come linguaggio principale
-
Utilizza Gorm per la persistenza dei dati su diverse tecnologie
-
Utilizza GSP o JSP per il rendering delle pagine
-
Porta semplicità a Java EE aderendo al principio Convenzione sulla configurazione (Convention over Configuration)
Azioni
In un’applicazione web, i punti di ingresso sono gli URL. Nella terminologia di Grails sono chiamati azioni (actions).
Le azioni sono responsabili dell’aggiornamento dello stato del browser in seguito a eventi dell’utente come clic, pressione di tasti e movimenti del mouse.
Il framework Taack non è un framework interamente AJAX; è piuttosto un framework tradizionale che genera pagine complete sul server, ma ha anche la capacità di aggiornare una porzione di pagina utilizzando AJAX.
Questo approccio aiuta a mantenere minimo lo stato interno del browser. Lato server, tutte le azioni sono stateless (senza stato). Lato browser, lo stack delle finestre modali e i relativi layout, definiti da blocchi, vengono memorizzati per gestire gli aggiornamenti dei contenuti.
Caratteristiche aggiuntive del framework
-
Approccio applicativo modulare
-
Gli sviluppatori possono concentrarsi esclusivamente sui propri moduli Gradle
-
-
Supporto per PDF, CSV o e-mail oltre al rendering HTML
-
Tipizzato staticamente
-
Supporto per l’IDE IntelliJ
-
Il rendering dei DSL viene eseguito in un singolo passaggio nella maggior parte dei casi