SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
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

Más contenido relacionado

Similar a Tomas Grails

Mobile Development with uPortal and Infusion
Mobile Development with uPortal and InfusionMobile Development with uPortal and Infusion
Mobile Development with uPortal and Infusioncolinbdclark
 
iBizLog. Smalltalking the Web
iBizLog. Smalltalking the WebiBizLog. Smalltalking the Web
iBizLog. Smalltalking the WebESUG
 
Building Apps with PhoneGap
Building Apps with PhoneGap Building Apps with PhoneGap
Building Apps with PhoneGap alunny
 
Gaelyk - SpringOne2GX - 2010 - Guillaume Laforge
Gaelyk - SpringOne2GX - 2010 - Guillaume LaforgeGaelyk - SpringOne2GX - 2010 - Guillaume Laforge
Gaelyk - SpringOne2GX - 2010 - Guillaume LaforgeGuillaume Laforge
 
Realtime Apps with Django
Realtime Apps with DjangoRealtime Apps with Django
Realtime Apps with DjangoRenyi Khor
 
Red Dirt Ruby Conference
Red Dirt Ruby ConferenceRed Dirt Ruby Conference
Red Dirt Ruby ConferenceJohn Woodell
 
Introduction to go lang
Introduction to go langIntroduction to go lang
Introduction to go langAmal Mohan N
 
Breaking out of the endless callback look - #jsday Italy keynote
Breaking out of the endless callback look - #jsday Italy keynoteBreaking out of the endless callback look - #jsday Italy keynote
Breaking out of the endless callback look - #jsday Italy keynoteChristian Heilmann
 
BRAINREPUBLIC - Powered by no-SQL
BRAINREPUBLIC - Powered by no-SQLBRAINREPUBLIC - Powered by no-SQL
BRAINREPUBLIC - Powered by no-SQLAndreas Jung
 
Groovy 1 7 Update, past, present, future - S2G Forum 2010
Groovy 1 7 Update, past, present, future - S2G Forum 2010Groovy 1 7 Update, past, present, future - S2G Forum 2010
Groovy 1 7 Update, past, present, future - S2G Forum 2010Guillaume Laforge
 
jQuery Comes to XPages
jQuery Comes to XPagesjQuery Comes to XPages
jQuery Comes to XPagesTeamstudio
 
The State of WebSockets in Django
The State of WebSockets in DjangoThe State of WebSockets in Django
The State of WebSockets in DjangoRami Sayar
 
Go, Docker & Kubernetes
Go, Docker &  KubernetesGo, Docker &  Kubernetes
Go, Docker & KubernetesGlobant
 
02 Objective C
02 Objective C02 Objective C
02 Objective CMahmoud
 

Similar a Tomas Grails (20)

Mobile Development with uPortal and Infusion
Mobile Development with uPortal and InfusionMobile Development with uPortal and Infusion
Mobile Development with uPortal and Infusion
 
iBizLog. Smalltalking the Web
iBizLog. Smalltalking the WebiBizLog. Smalltalking the Web
iBizLog. Smalltalking the Web
 
Acronym Soup
Acronym SoupAcronym Soup
Acronym Soup
 
Java to scala
Java to scalaJava to scala
Java to scala
 
Building Apps with PhoneGap
Building Apps with PhoneGap Building Apps with PhoneGap
Building Apps with PhoneGap
 
Gaelyk - SpringOne2GX - 2010 - Guillaume Laforge
Gaelyk - SpringOne2GX - 2010 - Guillaume LaforgeGaelyk - SpringOne2GX - 2010 - Guillaume Laforge
Gaelyk - SpringOne2GX - 2010 - Guillaume Laforge
 
Realtime Apps with Django
Realtime Apps with DjangoRealtime Apps with Django
Realtime Apps with Django
 
Red Dirt Ruby Conference
Red Dirt Ruby ConferenceRed Dirt Ruby Conference
Red Dirt Ruby Conference
 
Introduction to go lang
Introduction to go langIntroduction to go lang
Introduction to go lang
 
Railsconf 2010
Railsconf 2010Railsconf 2010
Railsconf 2010
 
Breaking out of the endless callback look - #jsday Italy keynote
Breaking out of the endless callback look - #jsday Italy keynoteBreaking out of the endless callback look - #jsday Italy keynote
Breaking out of the endless callback look - #jsday Italy keynote
 
Jsday
JsdayJsday
Jsday
 
BRAINREPUBLIC - Powered by no-SQL
BRAINREPUBLIC - Powered by no-SQLBRAINREPUBLIC - Powered by no-SQL
BRAINREPUBLIC - Powered by no-SQL
 
Groovy 1 7 Update, past, present, future - S2G Forum 2010
Groovy 1 7 Update, past, present, future - S2G Forum 2010Groovy 1 7 Update, past, present, future - S2G Forum 2010
Groovy 1 7 Update, past, present, future - S2G Forum 2010
 
App Engine Meetup
App Engine MeetupApp Engine Meetup
App Engine Meetup
 
jQuery Comes to XPages
jQuery Comes to XPagesjQuery Comes to XPages
jQuery Comes to XPages
 
HTML 5 - The Future is Now
HTML 5 - The Future is NowHTML 5 - The Future is Now
HTML 5 - The Future is Now
 
The State of WebSockets in Django
The State of WebSockets in DjangoThe State of WebSockets in Django
The State of WebSockets in Django
 
Go, Docker & Kubernetes
Go, Docker &  KubernetesGo, Docker &  Kubernetes
Go, Docker & Kubernetes
 
02 Objective C
02 Objective C02 Objective C
02 Objective C
 

Más de Skills Matter

5 things cucumber is bad at by Richard Lawrence
5 things cucumber is bad at by Richard Lawrence5 things cucumber is bad at by Richard Lawrence
5 things cucumber is bad at by Richard LawrenceSkills Matter
 
Patterns for slick database applications
Patterns for slick database applicationsPatterns for slick database applications
Patterns for slick database applicationsSkills Matter
 
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvmScala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvmSkills Matter
 
Oscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheimOscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheimSkills Matter
 
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...Skills Matter
 
Cukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberlCukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberlSkills Matter
 
Cukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.jsCukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.jsSkills Matter
 
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...Skills Matter
 
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...Skills Matter
 
Progressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source worldProgressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source worldSkills Matter
 
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...Skills Matter
 
Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#Skills Matter
 
A poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testingA poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testingSkills Matter
 
Russ miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-diveRuss miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-diveSkills Matter
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSkills Matter
 
I went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_tI went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_tSkills Matter
 

Más de Skills Matter (20)

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

Último

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 

Último (20)

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 

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