This course is taught by Object Partners Consultants with years of Grails experience. Every one of our instructors has been a part of several teams using Grails to build systems that are now in production so they know first hand the productivity and maintenance benefits of using Grails.
We’ll walk through everything you’ll need to get up and running with a Grails application. We’ll cover all of the application layers and explain each of them in detail.
- Groovy Intro: In this section we’ll run through a whirlwind tour of the Groovy language. In particular we’ll differentiate Groovy from Java. Syntax and code style will be covered and we’ll introduce closures and the meta-object protocol.
- Intro to Grails: In this section you’ll build a simple Grails application from scratch. We’ll demonstrate how easy it is to get up and running with Grails while explaining key concepts to the framework. You’ll see how Grails implements the MVC pattern simply and elegantly, and how it relates to Java frameworks like Spring and Hibernate.
- Intro to GORM: GORM (Grails Object Relational Mapping) provides an easy-to-use ORM for Grails applications built on top of Hibernate. In this section we’ll go over the methods used by GORM to query and update your datastore from a Grails application.
- Advanced GORM: In this section, we’ll revisit GORM to walk through topics like database migration and multiple datasources. You’ll learn some of the tricks you can use to optimize your ORM mappings as your application grows.
- Config/Logging/Plugins: In this section, you’ll see the simplicity of configuration and logging in the Grails framework. We’ll also show how the Grails plugin ecosystem provides a huge variety of ready-made functionality that you can easily incorporate into your application. We’ll walk through a simple plugin installation and see the ways that a plugin can modify your Grails application.
- Controller basics: Here you’ll see how Grails provides simple methods and powerful tools for processing requests and preparing responses. We’ll cover parameter binding, redirecting, preparing your model for the view and simple error handling.
We’ll take a deeper dive into the Grails application. You’ll get a better understanding of how the various components work and learn about how to structure your application for maintainability and performance.
- Groovy Meta-programming: After having a chance to explore dynamic finders, you’ll see how Grails uses runtime and compile time meta-programming under the covers
- Testing: Testing is a key component of any application and is baked right into the Grails framework. Here we’ll cover some of the tools Grails provides for unit and integration testing. You’ll see how the Groovy language makes for simple mocking and Grails’ built in methods simplify testing the framework’s layers.
- Services: Here we’ll cover the service layer of the application. You’ll see how Grails makes creating and wiring services incredibly simple and powerful. We’ll walk through best practices in this layer and some of the gotchas.
- Advanced Controllers: We’ll go back to the Controller layer to cover more advanced topics such as Command objects and converters. You’ll see how Grails uses Spring to allow for complex validation schemes without polluting your domain objects and various formats that you can use to interact with your view layer.
- The View Layer: Here you’ll get a look into how Sitemesh is used to create views. You’ll see the various types of tag libraries available to you as we take a deeper dive into creating and using tag libraries to simplify your view layer.
- Designing and creating restful web services in Grails. We will cover what Grails gives you out of the box and show you how to customize to meet your needs
We’ll spend day 3 digging into topics of your choice. We have many additional topics available, and want to make sure that you have time to discuss what’s important to you. We’ll use agile methodology to prioritize the topics most important to the class and cover as much as we can in the day. Topics for day 3 could include:
- RESTful Web Services
- Advanced Groovy
- JMS messaging / queues
- Writing plugins
- URL Mappings