Introduction

This book describes integration between Vaadin 8 and Grails 3 frameworks. The book starts with tutorial how to create and setup a project.

We will go through two approaches how to work with database. The first one is GORM, which is the default option. And then three alternatives to GORM that are MyBatis, JdbcTemplate and Groovy Sql.

We are going to look at the data binding tricks, basic ideas for architecture and how to compose the components using Model View Presenter (MVP).

The book also contains tutorials how to compile SASS and a widget set, after you add Vaadin add-on.

We will look at how to use Spring security, localization and how to add REST API that runs next to a Vaadin application and many other things.

If you are completely new to both technologies, the book will show you the first steps to start up development and then you should continue to Vaadin and Grails documentation.

If you are both Vaadin and also Grails expert, you might look at this book as a reference book, set of tutorials and also a place with several solutions that you might have to implement in your applications.

Behind The Scenes

This book could be written thanks to:

  • Questions you have been asking about development of Vaadin using Groovy and Grails past few years.

  • Many years spend with development of applications using Grails and Vaadin.

  • Chapter about Grails in Vaadin 7 Cookbook that showed there is more to be discovered.

Vaadin

Vaadin provides both simple and complex web UI components that can be displayed in browser or in mobile app, while the client side, an applicaiton running inside a web browser, is still connected to the server and communication happens when required, after user's action or when server pushes data to the client from the server.

Developers who like JVM oriented programing and design patterns that result in predictable APIs, might feel excited about the way how the development of an user interface can be done with Vaadin. We can play with UI components and still keep thinking about it as object structures in Java based languages.

Grails

Grails is framework used to build applications in really short time, because it provides:

  • Gradle for dependency management

  • Dependency injection with Spring application context

  • URL mapping

  • Filters

  • Controllers

  • Groovy Server Pages (.gsp) & tags

  • AJAX support

  • REST, SOAP

  • GORM (Grails ORM)

  • Transactional service layer

  • Async behavior

  • Internationalization i18n

  • Environments

  • Using Groovy and Java languages

  • On the fly reloading

Probably the most useful feature of Grails might be GORM (Grails Object Relation Mapping) that makes it really easy to create a database layer. We usually put work with GORM into services, that support transactions and are the place to put the application logic.

Rich internet applications in Grails

In case you want to build a rich JavaScript client from scratch, you need to invest quite some time to build client side components. Which makes sense if we need to develop own components with special features (like some crazy stuff your designers dream about).

But usually, we need to focus on solution that helps to easier pain of customer issues and implementation of business logic rather than spending time on implementation of rich JavaScript components. If that is the case, we might want to choose Vaadin to implement our Rich Internet Applications (RIA).

Vaadin plugin

There is a Grails plugin called vaadin that integrates Vaadin into Grails realm, by providing dependencies to Vaadin libraries. Also, the plugin provides support to make development faster.

  • Create start-up code with sample application

  • Help to access beans and localization values

  • SASS compilation

  • Widgetset compilation

Thanks

Thanks for reading this book and do not forget, you can contribute too.

Last updated