An Introduction To
Building Groovy Web
Applications With Grails
Jeff Brown brown_j@ociweb.com
Principal Software Engineer
Object Computing Inc.
http://www.ociweb.com/
Groovy Party Tricks
Groovy-isms
for the unenlightened
Everything is an object
GStrings
Named parameter lists
We dont need no stinking setters and getters
Markup the easy way
A 3 minute crash course with demos on
some of the features in Groovy that Java
developers will find fun and interesting
What Is Grails?
Full
stack MVC framework for web apps
Exploits the awesome power of Groovy
Leverages proven staples
Hibernate
Spring
Sitemesh
Excellent
for those apps in the sweet-spot
Fun, Fun, Fun
What About The Celebrities?
Famous
people love Grails
This presentation includes a number of
quotes from your favorite well knowns
Dont dig it just because they do
Just dig it!
A True Visionary
coding
by convention
Imagine no config files.
Its easy if you try.
No action mappings.
Man, that Grails is going to be fly.
In a rare moment of clarity, Yoko convinced John to remove
this verse from Imagine since Grails hadnt been invented yet.
Wet Your Grails Whistle
Lets
take a lightning fast first look
From Nothing To CRUD In 2 Minutes
Is That All There Is To It?
Holy productivity Bat Man!
What are we going to do
with all the free time?
Is
that all I can do?
I need to build real applications!
Grails Commands
Ant
is doing some heavy lifting
create-app
generate-controller
create-controller
generate-views
create-service
generate-all
create-domain-class
run-app
create-job
war
Scaffolding
Dynamic
It is all just magic
Generated
Generated code may be a good starting point
Domain Classes
The
M
Stick to the POGO
Let the controller do the controlling
Let the view do the viewing
May
define validation constraints
Controllers
The
C
Traffic cop
Defining actions
Navigating to the view
Views
The
V
Groovy Server Pages (GSP)
Custom Tag Libraries
Sitemesh
Tag Libraries
Provided
Logical, Iterative, Ajax, Form, etc
Custom
tags
No config files
Leave
tags
those TLDs behind
It is all Groovy
Should I Miss My TLD Files?
I pity the fool who has to
maintain all of those TLD files.
Hey Dude, Where Is My Data?
*DataSource.groovy
DevelopmentDataSource.groovy
ProductionDataSource.groovy
TestDataSource.groovy
HSQL
DB
In memory db is great for evolving schema during
development
ApplicationBootStrap.groovy
GORM
Groovy
Object Relational Mapping
Hibernate under the covers
JPA support slated for 0.4
No
need to manage mapping files
You still can if the need arises
Can map Java classes
Dynamic Domain Class Methods
findBy
Person.findByLastName(Brown)
Person.findByLastNameAndFirstName(Brown, Jeff)
findWhere
Person.findWhere(lastName:Brown, firstName:Jeff)
Etc
The End
Thank you, thank
you very much.