Smokejumping Grails
                             Robert Fischer, Smokejumper Consulting
                             rober...
Hi, I’m Robert
Tuesday, November 18, 2008                    2
Math Major
Tuesday, November 18, 2008                3
Born and Raised in Perl
Tuesday, November 18, 2008                 4
Agile Java Consultant
Tuesday, November 18, 2008                     5
Technical Blogger
                   EnfranchisedMind.com
                   •         The Joy of BDD, or, Re-writing Your...
Groovy/Grails Fanboy
                   • Introduced to Groovy/Grails at Carol.com,
                             Active in...
All Web App
                        Development Should
                             Be Grails


Tuesday, November 18, 2008...
No, Really.
                   • Stunningly simple development.
                   • Succinct code using a superset of Jav...
What Is Grails?
                   • Web application development framework/
                             environment lever...
How Would You
                                Like Your Grails?
                   •         Conceptually thin dynamic MVC...
Grails Before
                             Your Very Eyes!
                                 Live Coding!




Tuesday, Nove...
But Wait, There’s More!
                         Plugins
                   • Functional Testing
                         ...
Autobase
                   • Manages database state using a non-linear
                             collection of databas...
Example Migration

                      changeSet(id:'rename_bar_to_baz', author:'Robert')
                      {
      ...
Background Thread

                   • Provides a Spring bean that will execute
                             arbitrary cl...
BackgroundThread
                               Usage Example
                      class FooService {
                   ...
But What About
                             JRuby on Rails?



Tuesday, November 18, 2008                     18
My JRuby on Rails
                                  Street Cred
                   •         Work history in Rails,
      ...
Why Not
                                    JRuby on Rails?
                   •         Although Java-in-Ruby is fairly s...
The One Circumstance
                  I Would Still Use Rails
                   • Small CRUD-based app with its own DB
 ...
Your Grails
                                  Adoption Plan
                   • Best approach: start with a roughly green...
Resources
                   •         Home Pages:
                             http://grails.org
                        ...
Groovy Mag
Tuesday, November 18, 2008                24
Sold?
                      Want to know more?
                   • Robert is offering “Introduction to Groovy,
          ...
Upcoming SlideShare
Loading in...5
×

Intro To Grails

2,043

Published on

Robert Fischer (Smokejumper Consulting)'s presentation introducing Grails given to the Triangle Java User Group.

Published in: Technology
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total Views
2,043
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
62
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Intro To Grails

  1. 1. Smokejumping Grails Robert Fischer, Smokejumper Consulting robert . fischer @ SmokejumperIT . com Presented Nov 17th, 2008 at the Triangle Java User Group (TriJUG) Tuesday, November 18, 2008 1
  2. 2. Hi, I’m Robert Tuesday, November 18, 2008 2
  3. 3. Math Major Tuesday, November 18, 2008 3
  4. 4. Born and Raised in Perl Tuesday, November 18, 2008 4
  5. 5. Agile Java Consultant Tuesday, November 18, 2008 5
  6. 6. Technical Blogger EnfranchisedMind.com • The Joy of BDD, or, Re-writing Your Code in Mocks and Asserts is Not Unit Testing • Functional (Meta)?Programming Stunts for Ruby and Groovy (and a Little Perl) • 7 Actually Useful Things You Didn’t Know Static Typing Could Do: An Introduction for the Dynamic Language Enthusiast • A Defense of Prototypes, or, Why Does Tom Christiansen Hate Perl? Tuesday, November 18, 2008 6
  7. 7. Groovy/Grails Fanboy • Introduced to Groovy/Grails at Carol.com, Active in Groovy Users of Minnesota • Uses Grails as freelancer to quickly develop prototype applications • Regular on IRC: FreeNode #groovy, #grails • Active on Groovy and Grails mailing lists • Autobase and BackgroundThread plugin Tuesday, November 18, 2008 7
  8. 8. All Web App Development Should Be Grails Tuesday, November 18, 2008 8
  9. 9. No, Really. • Stunningly simple development. • Succinct code using a superset of Java. • Sane defaults, straightforward configuration. • Static typing as deemed useful by developer. • Standard deployment approach. • SpringSource backed and here to stay. Tuesday, November 18, 2008 9
  10. 10. What Is Grails? • Web application development framework/ environment leveraging Java and Groovy. • Convention-based MVC development with a set of powerful command-line tools. • Powered by pre-configured and pre- integrated Spring, Hibernate, SiteMesh, and JUnit. Tuesday, November 18, 2008 10
  11. 11. How Would You Like Your Grails? • Conceptually thin dynamic MVC framework • Dynamic, succinct domain and controllers • Run from source code check-out • Mash-up with extensible plugin architecture • Actually approachable best-of-breed Java stack • Prepackaged Java environment and build system • Builds a WAR to plug into existing deployments • Hooks for existing Spring and Hibernate config Tuesday, November 18, 2008 11
  12. 12. Grails Before Your Very Eyes! Live Coding! Tuesday, November 18, 2008 12
  13. 13. But Wait, There’s More! Plugins • Functional Testing webtest, selenium, fitnesse • Rich User Interface (RIA) grails-ui, richui, gwt, flex, yui, iui • Database Management: Autobase • Background Tasks: BackgroundThread • And dozens more: http://grails.org/plugins Tuesday, November 18, 2008 13
  14. 14. Autobase • Manages database state using a non-linear collection of database change sets. • Leverages existing Grails database automation to minimize effort. • Provides a Liquibase-based embedded DSL for database migrations. • http://github.com/RobertFischer/autobase/ wikis/ Tuesday, November 18, 2008 14
  15. 15. Example Migration changeSet(id:'rename_bar_to_baz', author:'Robert') { dropColumn(tableName:'foo', columnName:'baz') renameColumn(tableName:quot;fooquot;, oldColumnName:quot;barquot;, newColumnName:quot;bazquot;) } Tuesday, November 18, 2008 15
  16. 16. Background Thread • Provides a Spring bean that will execute arbitrary closures in the background. • Handles some awkwardness around Hibernate sessions, and provides thread pooling and logging. • http://grails.org/BackgroundThread+Plugin Tuesday, November 18, 2008 16
  17. 17. BackgroundThread Usage Example class FooService { boolean transactional = false def backgroundService def serviceMethod() { (1..<10).each { cnt -> backgroundService.execute(quot;Logging '$cnt'”, { log.info(quot;${cnt}quot;) }) } } Tuesday, November 18, 2008 17
  18. 18. But What About JRuby on Rails? Tuesday, November 18, 2008 18
  19. 19. My JRuby on Rails Street Cred • Work history in Rails, including last 5 months on a JRuby on Rails project • Regular attendee, competition member, and one-time presenter at Ruby Users of Minnesota (RUM) • Charlie “Headius” Nutter fan Tuesday, November 18, 2008 19
  20. 20. Why Not JRuby on Rails? • Although Java-in-Ruby is fairly slick, Ruby-in-Java is pretty rough and best mediated via Groovy metaprogramming • GORM is superior to ActiveRecord • http://www.oreillynet.com/ruby/blog/2007/05/ bind_parameters_now.html • GSPs are superior to ActionView • Spring is superior to nothing • Optional static typing is superior to pure dynamic typing • You can code Grails without grokking its source • Nobody is fired for choosing Java Tuesday, November 18, 2008 20
  21. 21. The One Circumstance I Would Still Use Rails • Small CRUD-based app with its own DB • No or very generous performance limits • Owned by one or two developers • Expected life cycle of less than a year • Deployed system is without Java or is an Apache web server with mod_passenger and without mod_proxy or mod_jk Tuesday, November 18, 2008 21
  22. 22. Your Grails Adoption Plan • Best approach: start with a roughly green- field proof-of-concept web application • Use GRAG on SourceForge to generate a database front-end to impress your boss • Wrap an existing Java web application in Grails and use web.xml (installed via “grails install-templates”) to map urls to servlets Tuesday, November 18, 2008 22
  23. 23. Resources • Home Pages: http://grails.org http://groovy.codehaus.org/ • Live Open Source Applications Grails Crowd Grails.org Groovy Blogs • Media Groovy & Grails Podcast GroovyMag Tuesday, November 18, 2008 23
  24. 24. Groovy Mag Tuesday, November 18, 2008 24
  25. 25. Sold? Want to know more? • Robert is offering “Introduction to Groovy, Grails, and AJAX” training in the Triangle on December 15th through 18th. Additional training courses will be offered next year. • Subscribe to “Smokejumper Training” Google Group for more information. • On-demand training, technical leadership, and mentoring services are also available. http://SmokejumperIT.com Tuesday, November 18, 2008 25
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×