Goals

Improve expressiveness of a typical Intranet application by using Groovy DSL (Domain Specific Languages).

DSLs are statically typed, most errors are detected during the development cycle and IDE can autocomplete code more easily.

The Taack Framework also allows to shorten usual application code by avoiding GSPs and manage common operations (filter, save, show).

Architecture

The Taack Framework depends on the Grails application framework. Grails brings the runtime context. The Grails infrastructure has the following characteristics:

  • On top of SpringBoot (and Micronaut)

  • Uses Groovy as main language

  • Uses Gorm for data persistence over various technologies

  • Uses GSP or JSP for page rendering

  • Brings simplicity to Java EE by adhering to the moto Convention over Configuration

Actions

In a web application, entry points are URLs. They are called actions in Grails terminology.

Actions are responsible for updating browser state following user events such as clicks, key presses, mouse movement.

There are 2 kinds of actions:

  • ajax actions: the page is updated by some Javascript code seating into the browser. The URL displayed in the browser does not change (in our case).

  • non-ajax actions: complete page is reloaded by browser. The URL displayed might change.

The Taack Framework sits in the middle of these two kinds of actions: It is not a fully AJAX framework; rather, it is mostly an old-school framework that generates complete pages on the server but also has the capability of updating a portion of a page using AJAX.

This approach helps keep the browser’s internal state minimal. On the server side, all actions are stateless. On the browser side, the stack of modal windows and their layouts, defined by blocks, are stored to manage content updates."

Additional Framework Characteristics

  • Modular application approach

    • Developer can focus solely on their Gradle Modules

  • Support for PDF, CSV or Mails in addition to HTML rendering

  • Statically typed

  • Intellij IDE Support

  • DSL rendering is performed in single pass most of the time