What is Grails?
Grails is an Open Source, high productivity framework for building enterprise-scale web applications. It supports the development of many application types, including e-commerce web sites, content management systems (CMS), and RESTful web services.
By leveraging sensible defaults and convention-over-configuration, Grails significantly increases developer productivity. Organizations that use Grails as their application development framework realize nearly immediate gains in developer productivity and substantially reduce the time and effort to develop complex apps.
Business Benefits of Using Grails
- Time to Market
- Developer Efficiency. The convention-over-configuration model effectively streamlines configuration management. An independent case study described this benefit as follows: "Much of the boilerplate code can be seen up in an application within an hour." (Rajesh Kumar I.P. 2013. "Grails Web Framework: An Evaluation Based on Firsthand Implementation Experience." Sapient Global Markets.)
- Reusability. The Grails framework uses the "Don't Repeat Yourself" (DRY) principle, thereby eliminating repetition, hidden bugs, as well as enabling faster and easier enhancements.
- Ease of Java Integration . Since Grails is interoperable with Java libraries, developers can make use of the best design choices on a case-by-case basis, reducing development cycles and saving time.
- Agility. Iterative development is a hallmark of the Grails framework, because teams can carve out functionality in short sprints, with checkpoints and testing along the way. The built-in integration testing helps maintain code quality throughout the development process and reduces defects in the final product.
- Cost Savings
- Increased Developer Productivity. Grails was specifically designed to facilitate developer productivity, which means smaller teams are more productive. The efficiency and precision of the code means fewer bugs, less code, and faster enhancements. Nor does Grails require a web container restart for small changes, which reduces development time.
- Plug-Ins. The plug-ins that come with Grails are easy to integrate, further reducing development time, cost and support.
- Low Maintenance. The foundational design assumptions in Grails lead to less time developing boilerplate code, less time for developers to understand the framework, especially Java developers, and are key factors in addressing maintenance complexity and cost goals.
Why Upgrade to Grails 3
- GROOVY 2.4 & SPRING 4.2
Grails 3 is built on Spring Boot 1.3, offering the ability to produce runnable JAR files that embed Tomcat, Jetty or other containers.
- GRADLE-BASED BUILD
Grails 3 integrates closely with the Gradle plugin ecosystem, making for a more flexible test execution environment that may be configured to execute in parallel.
- APPLICATION PROFILES
Grails 3 supports the application profile notion via a new profile repository. For example, the “web” profile allows construction of web applications deployable to a Servlet container.
- INTERACTIVE COMMAND LINE SHELL
Grails 3 features a new interactive command line shell that integrates closely with Gradle, providing APIs for writing scripts to interact with Gradle and perform code generation.
- ENHANCED IDE INTEGRATION
Enhanced IDE integration means users may now import Grails projects using IntelliJ community edition or Gradle tooling support. Grails 3 plugins are published as simple JAR files, reducing the need for additional IDE support.
- STATIC VOID MAIN SIGNATURE
Each new Grails 3 project features an application class with a traditional static void main signature. This means a simple right-click on the Application class and execute to start, run, or debug your Grails application from an IDE. All Grails 3 tests may be run from the IDE directly, without resorting to the command line (even integration / functional tests!).
- SPOCK/GEB FUNCTIONAL TEST SUPPORT
Grails 3 offers built-in support for SPOCK/GEB functional tests. Using the create-functional-test command, based on Spring Boot's test running mechanism, functional tests load the application once for an entire suite of tests. The tests may be run from an IDE and don’t require the command line.