SlideShare a Scribd company logo
What can Grails do for me?
                          An intro to Grails for Flex and Java
                                      developers
                           Flex on Java Exchange, London, June, 2010

                                   Tomas Lin ( @tomaslin )



Wednesday, 16 June 2010
Life is too short for
                                   XML


Wednesday, 16 June 2010
Agenda
                   • Who is this guy?
                   • 4 Cool Things About Grails.
                   • Building a Grails app.
                   • Flex and Grails - grails flex scaffold demo.
                   • Flex and Grails - blazeds4 plugin demo
                   • Questions?
Wednesday, 16 June 2010
Who is this guy?
           • Don’t worry, I’m not trying to sell you anything.
           • Currently a senior developer at DMC digital
           • Java / UI Developer since 2000.
           • Worked with Grails and Flex for about 2.5 years.
           • Canadian citizen born in Taiwan, raised in
                   Guatemala and working in the UK.



Wednesday, 16 June 2010
Blue
                          Ember
                          Grills

                          Flex 3 &
                           Grails




Wednesday, 16 June 2010
Suzuki Canada   Flex 3 & Grails
Wednesday, 16 June 2010
Dan Aykroyd Wines HTML, CSS, Flex 3, Grails

Wednesday, 16 June 2010
Empora.com Content Management System Adobe AIR
Wednesday, 16 June 2010
Grails
                   • An open source web framework inspired
                          by Rails and Django.
                   • http://www.grails.org
                   • Supported by VMWare / SpringSource



Wednesday, 16 June 2010
Grails
                          • Sky.com
                          • Walmart
                          • Wired
                          • LinkedIn
                          • Businessweek.in
                          • Suzuki.ca
                          • Tacobell.ca
                          • Deutsche Bank
Wednesday, 16 June 2010
4 cool things about
                                 Grails



Wednesday, 16 June 2010
Cool Thing #1: Ready to Go
                              Spring Framework
                            Hibernate ( GORM )
                                Quartz ( jobs )
                             Sitemesh ( layouts )
                          Spring MVC ( webflow )
                          Prototype / Scriptaculous
                                     Ant
                                      Ivy
                                  HSQLDB
                                   Tomcat


Wednesday, 16 June 2010
Cool Thing #2 : Groovy
                   • Java’s best friend
                   • Dynamic JVM language with full support for
                          Java objects and libraries.
                   • Compiles to Java Bytecode.
                   • Closures, builders, dynamic typing, etc...
                   • More relaxed, script-like syntax
                   • Features of Smalltalk, Python, Ruby

Wednesday, 16 June 2010
Text
                                   Text




                          Java . But also Groovy .
                                              original author of this slide is Marcel Overdijk -
Wednesday, 16 June 2010
• Dynamic types using the def keyword
                          • Optional return types
                          • Everything is public by default
                          • Optional semicolons, parentheses
                          • Variable interpolation via GStrings
                          • Automatic setters and getters
                                                    original author of this slide is Marcel Overdijk -
Wednesday, 16 June 2010
Healthy ecosystem
             • gPars - parallel processing
             • Groovy++ - static typing
             • Spock - data / behaviour driven testing and
                    specifications framework
             • Gaelyk - lightweight web framework for the
                    Google App Engine
             • Tellurium - automatic UI based testing
                    framework based on Selenium.
             • Griffon - Swing / Desktop applications.
Wednesday, 16 June 2010
Cool Thing #3 : 426 Plugins




Wednesday, 16 June 2010
Cool Thing #4: Flex +
                            Flash Integration
                                     BlazeDS
                                   GraniteDS
                               Grails Flex Scaffold
                                  Openlaszlo
                              JW FLV Media Library
                                       sIFR
                                      Red5
                                      Video
Wednesday, 16 June 2010
Building a
                          Grails application
                            ( woohoo! )


Wednesday, 16 June 2010
Wednesday, 16 June 2010
Wednesday, 16 June 2010
Wednesday, 16 June 2010
Grails Flex Scaffold
                     • Developed by Cubika in Argentina
                     • Flex 3, Cairngorm, Stark Security


                          @eapfel


Wednesday, 16 June 2010
Wednesday, 16 June 2010
BlazeDS plugin
                   • Developed by Sébastien Arbogast
                   • BlazeDS, Spring-Flex Integration
                   • Spring Security


                     @ sarbogast

Wednesday, 16 June 2010
Wednesday, 16 June 2010
Web Services
                          • Sometimes we can’t use BlazeDS / AMF
                          • REST - built in content negotiation
                          • SOAP / WSDL - via plugins like XFire, CXF
                            or Spring WS




Wednesday, 16 June 2010
Wednesday, 16 June 2010
Notes
                   • The Java introspector in Flash Builder 4
                          does not work with Groovy classes, but
                          you can use the DTO plugin to
                          automatically generate Java DTOs and cast
                          between Java / Groovy.
                   • There are a few plugins that aid with
                          Hibernate LazyInitialization issues. Gorm
                          Labs, for example, dehydrates Hibernate
                          sessions before being sent across the wire.
                   • IDE Support is actually quite good. My
                          IntelliJ trial expired yesterday. STS and
                          Netbeans also do Grails.
Wednesday, 16 June 2010
Other uses.
        • Tag libraries for embedding SWFs, providing
               alternative content for SEO.
        • Adding server side search via Lucene or Solr.
        • Deployment platform for Amazon / App Engine.
        • A nice proxy to bypass Flash Security restrictions.
        • Backend glue to PHP / Clojure.
        • Data import / massaging.
Wednesday, 16 June 2010
Wednesday, 16 June 2010
Flex / Grails Wish List
                  • Flash Builder extension for Grails
                  • UI Testing automation
                  • Integration with Model Driven
                          Development / LiveCycle services.
                  • A clear way to deal with Hibernate sessions.
                  • A way to template frameworks like Parsley,
                          Robotlegs or PureMVC
                  • Better integration with messaging options.
Wednesday, 16 June 2010
Why do I like Grails?
                   • Allows me to build backends to my Flex
                          applications quickly and effectively.
                   • Integrates well with existing Java libraries.
                   • Lets me try new things fairly risk free.
                   • Encourages modular development / re-use.
                   • Constantly getting better.
                   • Makes writing web applications fun.
Wednesday, 16 June 2010
Learn More!




Wednesday, 16 June 2010
                          grails.org/books
Learn More!
                    • http://www.grails.org
                    • Come to the user group meetings.
                     • Third Monday every month. Here.
                    • Grails mailing list.
                    • twitter: @tomaslin
                    • email: tomaslin@gmail.com
Wednesday, 16 June 2010
Questions?




Wednesday, 16 June 2010

More Related Content

PDF
Debugging your JavaScript
PDF
Mobile Apps Cross Platform - Webmontag Frankfurt 2009
PDF
通用JS时代的模块机制和编译工具
PDF
When is a Website Not Enough? Now.
PDF
Jeremy Spring Source Blaze Ds
PDF
Javawug bof 57 scala why now
PDF
Facets Of Fragmentation by Mark Murphy
PDF
Phone gap nikolaionken-08-06
Debugging your JavaScript
Mobile Apps Cross Platform - Webmontag Frankfurt 2009
通用JS时代的模块机制和编译工具
When is a Website Not Enough? Now.
Jeremy Spring Source Blaze Ds
Javawug bof 57 scala why now
Facets Of Fragmentation by Mark Murphy
Phone gap nikolaionken-08-06

Similar to Tomas Grails (20)

PDF
Mobile Development with uPortal and Infusion
PDF
iBizLog. Smalltalking the Web
PDF
Acronym Soup
PDF
Java to scala
PDF
Building Apps with PhoneGap
PDF
Gaelyk - SpringOne2GX - 2010 - Guillaume Laforge
PDF
Realtime Apps with Django
PDF
Red Dirt Ruby Conference
PPTX
Introduction to go lang
PDF
Railsconf 2010
PDF
Breaking out of the endless callback look - #jsday Italy keynote
PDF
BRAINREPUBLIC - Powered by no-SQL
PDF
Groovy 1 7 Update, past, present, future - S2G Forum 2010
PDF
App Engine Meetup
PDF
jQuery Comes to XPages
PDF
HTML 5 - The Future is Now
PDF
The State of WebSockets in Django
PDF
02 Objective C
PDF
Let's Go @ St. Louis CocoaHeads
Mobile Development with uPortal and Infusion
iBizLog. Smalltalking the Web
Acronym Soup
Java to scala
Building Apps with PhoneGap
Gaelyk - SpringOne2GX - 2010 - Guillaume Laforge
Realtime Apps with Django
Red Dirt Ruby Conference
Introduction to go lang
Railsconf 2010
Breaking out of the endless callback look - #jsday Italy keynote
BRAINREPUBLIC - Powered by no-SQL
Groovy 1 7 Update, past, present, future - S2G Forum 2010
App Engine Meetup
jQuery Comes to XPages
HTML 5 - The Future is Now
The State of WebSockets in Django
02 Objective C
Let's Go @ St. Louis CocoaHeads
Ad

More from Skills Matter (20)

PDF
5 things cucumber is bad at by Richard Lawrence
ODP
Patterns for slick database applications
PDF
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
ODP
Oscar reiken jr on our success at manheim
ODP
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
PDF
Cukeup nyc ian dees on elixir, erlang, and cucumberl
PDF
Cukeup nyc peter bell on getting started with cucumber.js
PDF
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
ODP
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
ODP
Progressive f# tutorials nyc don syme on keynote f# in the open source world
PDF
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
PPTX
Dmitry mozorov on code quotations code as-data for f#
PDF
A poet's guide_to_acceptance_testing
PDF
Russ miles-cloudfoundry-deep-dive
KEY
Serendipity-neo4j
PDF
Simon Peyton Jones: Managing parallelism
PDF
Plug 20110217
PDF
Lug presentation
PPT
I went to_a_communications_workshop_and_they_t
PDF
Plug saiku
5 things cucumber is bad at by Richard Lawrence
Patterns for slick database applications
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
Oscar reiken jr on our success at manheim
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Cukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc peter bell on getting started with cucumber.js
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc don syme on keynote f# in the open source world
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Dmitry mozorov on code quotations code as-data for f#
A poet's guide_to_acceptance_testing
Russ miles-cloudfoundry-deep-dive
Serendipity-neo4j
Simon Peyton Jones: Managing parallelism
Plug 20110217
Lug presentation
I went to_a_communications_workshop_and_they_t
Plug saiku
Ad

Recently uploaded (20)

PPTX
A Presentation on Artificial Intelligence
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Big Data Technologies - Introduction.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Cloud computing and distributed systems.
DOCX
The AUB Centre for AI in Media Proposal.docx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
cuic standard and advanced reporting.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Electronic commerce courselecture one. Pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Empathic Computing: Creating Shared Understanding
A Presentation on Artificial Intelligence
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
NewMind AI Weekly Chronicles - August'25 Week I
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Mobile App Security Testing_ A Comprehensive Guide.pdf
Big Data Technologies - Introduction.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
The Rise and Fall of 3GPP – Time for a Sabbatical?
Cloud computing and distributed systems.
The AUB Centre for AI in Media Proposal.docx
“AI and Expert System Decision Support & Business Intelligence Systems”
cuic standard and advanced reporting.pdf
Unlocking AI with Model Context Protocol (MCP)
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Electronic commerce courselecture one. Pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Empathic Computing: Creating Shared Understanding

Tomas Grails

  • 1. What can Grails do for me? An intro to Grails for Flex and Java developers Flex on Java Exchange, London, June, 2010 Tomas Lin ( @tomaslin ) Wednesday, 16 June 2010
  • 2. Life is too short for XML Wednesday, 16 June 2010
  • 3. Agenda • Who is this guy? • 4 Cool Things About Grails. • Building a Grails app. • Flex and Grails - grails flex scaffold demo. • Flex and Grails - blazeds4 plugin demo • Questions? Wednesday, 16 June 2010
  • 4. Who is this guy? • Don’t worry, I’m not trying to sell you anything. • Currently a senior developer at DMC digital • Java / UI Developer since 2000. • Worked with Grails and Flex for about 2.5 years. • Canadian citizen born in Taiwan, raised in Guatemala and working in the UK. Wednesday, 16 June 2010
  • 5. Blue Ember Grills Flex 3 & Grails Wednesday, 16 June 2010
  • 6. Suzuki Canada Flex 3 & Grails Wednesday, 16 June 2010
  • 7. Dan Aykroyd Wines HTML, CSS, Flex 3, Grails Wednesday, 16 June 2010
  • 8. Empora.com Content Management System Adobe AIR Wednesday, 16 June 2010
  • 9. Grails • An open source web framework inspired by Rails and Django. • http://www.grails.org • Supported by VMWare / SpringSource Wednesday, 16 June 2010
  • 10. Grails • Sky.com • Walmart • Wired • LinkedIn • Businessweek.in • Suzuki.ca • Tacobell.ca • Deutsche Bank Wednesday, 16 June 2010
  • 11. 4 cool things about Grails Wednesday, 16 June 2010
  • 12. Cool Thing #1: Ready to Go Spring Framework Hibernate ( GORM ) Quartz ( jobs ) Sitemesh ( layouts ) Spring MVC ( webflow ) Prototype / Scriptaculous Ant Ivy HSQLDB Tomcat Wednesday, 16 June 2010
  • 13. Cool Thing #2 : Groovy • Java’s best friend • Dynamic JVM language with full support for Java objects and libraries. • Compiles to Java Bytecode. • Closures, builders, dynamic typing, etc... • More relaxed, script-like syntax • Features of Smalltalk, Python, Ruby Wednesday, 16 June 2010
  • 14. Text Text Java . But also Groovy . original author of this slide is Marcel Overdijk - Wednesday, 16 June 2010
  • 15. • Dynamic types using the def keyword • Optional return types • Everything is public by default • Optional semicolons, parentheses • Variable interpolation via GStrings • Automatic setters and getters original author of this slide is Marcel Overdijk - Wednesday, 16 June 2010
  • 16. Healthy ecosystem • gPars - parallel processing • Groovy++ - static typing • Spock - data / behaviour driven testing and specifications framework • Gaelyk - lightweight web framework for the Google App Engine • Tellurium - automatic UI based testing framework based on Selenium. • Griffon - Swing / Desktop applications. Wednesday, 16 June 2010
  • 17. Cool Thing #3 : 426 Plugins Wednesday, 16 June 2010
  • 18. Cool Thing #4: Flex + Flash Integration BlazeDS GraniteDS Grails Flex Scaffold Openlaszlo JW FLV Media Library sIFR Red5 Video Wednesday, 16 June 2010
  • 19. Building a Grails application ( woohoo! ) Wednesday, 16 June 2010
  • 23. Grails Flex Scaffold • Developed by Cubika in Argentina • Flex 3, Cairngorm, Stark Security @eapfel Wednesday, 16 June 2010
  • 25. BlazeDS plugin • Developed by Sébastien Arbogast • BlazeDS, Spring-Flex Integration • Spring Security @ sarbogast Wednesday, 16 June 2010
  • 27. Web Services • Sometimes we can’t use BlazeDS / AMF • REST - built in content negotiation • SOAP / WSDL - via plugins like XFire, CXF or Spring WS Wednesday, 16 June 2010
  • 29. Notes • The Java introspector in Flash Builder 4 does not work with Groovy classes, but you can use the DTO plugin to automatically generate Java DTOs and cast between Java / Groovy. • There are a few plugins that aid with Hibernate LazyInitialization issues. Gorm Labs, for example, dehydrates Hibernate sessions before being sent across the wire. • IDE Support is actually quite good. My IntelliJ trial expired yesterday. STS and Netbeans also do Grails. Wednesday, 16 June 2010
  • 30. Other uses. • Tag libraries for embedding SWFs, providing alternative content for SEO. • Adding server side search via Lucene or Solr. • Deployment platform for Amazon / App Engine. • A nice proxy to bypass Flash Security restrictions. • Backend glue to PHP / Clojure. • Data import / massaging. Wednesday, 16 June 2010
  • 32. Flex / Grails Wish List • Flash Builder extension for Grails • UI Testing automation • Integration with Model Driven Development / LiveCycle services. • A clear way to deal with Hibernate sessions. • A way to template frameworks like Parsley, Robotlegs or PureMVC • Better integration with messaging options. Wednesday, 16 June 2010
  • 33. Why do I like Grails? • Allows me to build backends to my Flex applications quickly and effectively. • Integrates well with existing Java libraries. • Lets me try new things fairly risk free. • Encourages modular development / re-use. • Constantly getting better. • Makes writing web applications fun. Wednesday, 16 June 2010
  • 34. Learn More! Wednesday, 16 June 2010 grails.org/books
  • 35. Learn More! • http://www.grails.org • Come to the user group meetings. • Third Monday every month. Here. • Grails mailing list. • twitter: @tomaslin • email: tomaslin@gmail.com Wednesday, 16 June 2010