SlideShare a Scribd company logo
1 of 51
Download to read offline
Grails & the World of
                                    Tomorrow
                        Peter Ledbrook, Developer Advocate
                       pledbrook@vmware.com / @pledbrook



© 2012 SpringOne 2GX. All rights reserved. Do not distribute without permission.

                                                                                   1
NoSQL   HTML5.js



Cloud           Social




                         2
HTML5.js



Web sites                Applications


Server-side HTML         Client-side HTML
Low interactivity        High interactivity
No offline               Offline




             Wikipedia




                                              3
HTML5.js



Web sites                     Applications


Server-side HTML              Client-side HTML
Low interactivity             High interactivity
No offline                    Offline




                    Twitter




                                                   4
HTML5.js



Web sites                   Applications


Server-side HTML            Client-side HTML
Low interactivity           High interactivity
No offline                  Offline




                    GMail




                                                 5
HTML5.js

                       We’re going this way!

Web sites                                       Applications


Server-side HTML                                Client-side HTML
Low interactivity                               High interactivity
No offline                                      Offline




                    Example:
                           REST + JSON
                      Backbone.js + Moustache


                                                                     6
Google I/O 2012


     400 million

Android activations to date




  Apple WWDC 2012


     365 million

 iOS devices sold to date



                              7
Is this the end for server-side
          templates?




                                  8
NoSQL / Big Data

Data the way you want it!




                            9
NoSQL / Big Data




     Everyone has interesting data




                                     10
11
Cloud



   Scaling                     Reduced
                              capital costs




                Easier
             administration



                                              12
Cloud


  Ephemeral                      Session
  filesystems                  management




                No Multicast




                                            13
14
A typical Grails app

                             HTTP



              Controller            View




               Service




           GORM/Hibernate



                  Database




                                           15
16
What do these cars have in common?




                                     17
Same platform, different components




                                      18
Core Grails == Chassis


   Plugins == Components




                           19
How can Grails help - Rich UIs?


       URL mappings for REST

       JSON & XML converters

       Resources (for JS & CSS)




                       zipping, caching, compression




                                                       20
Static resource handling


                           App



   Kickstart Bootstrap
                                         Shiro UI Plugin
         Plugin




                     Twitter Bootstrap
                           Plugin



                                                           21
Scaffolding libraries

   > grails install-plugin jquery-mobile-scaffolding
   > grails install-mobile-templates
   > grails create-domain-class org.example.Todo

   <edit Book.groovy>

   > grails generate-all org.example.Todo
   > grails run-app




                                                       22
How can Grails help - Social?


Simplified OAuth via OAuth plugin:

oauth {
  providers {
    twitter {
        api = TwitterApi
        key = 'my-key'
        secret = 'my-secret'
        successUri = '/'
        failureUri = '/'
    }
  }
}



                                     23
How can Grails help - Social?

<oauth:connect provider="twitter">
 Connect to Twitter
</oauth:connect>


class MyService {
   def oauthService

    def myMethod() {
      def twitterUsers = oauthService.getTwitterResource(
           twitterAccessToken,
           "http://api.yourprovider.com/users/list")
      ...
    }
}

                                                            24
How can Grails help - NoSQL?


          Accessible NoSQL via GORM

                 Domain Model




                    GORM




                                      25
How can Grails help - Cloud?

Solve the caching problem with the Cache plugin

                         Cache plugin



               Ehcache                  Redis

For HTTP sessions, Database Session plugin
                  Database Session plugin



               MongoDB                  Cookie
                                                  26
27
PaaS deployment

                                       Rabbitmq
  Redis Plugin    App                   Plugin


                    > grails cf-push




                                                  28
What about horizontal scalability?




                                     29
Introducing CQRS

Updates
                                         Store
                                        changes




                                 Concurrency
                                 via event bus


 Views


                     Separate data
                   stores for queries


                                                  30
Event bus (Platform Core plugin)


                                   Update    Call REST
           Save entity    Index   read DBs    service




                          Event Bus




              Plugins
               Plugins
                Plugins               Application




                                                         31
Event bus (Events SI plugin)


                                     Update       Call REST
           Save entity      Index   read DBs       service




                          Event Bus (SI)                      AMQP



              Plugins
               Plugins
                Plugins                    Application




                                                                     32
Event bus (Events Push plugin)

                        Browser


                        Event Bridge




                        Event Bus (SI)




            Plugins
             Plugins
              Plugins                    Application




                                                       33
grailsTodos sample




                     34
grailsTodos sample




                     35
grailsTodos sample




                     36
grailsTodos sample




                     37
grailsTodos sample


Try it:

          http://grailstodos.cloudfoundry.com/todos/



See the code:

          http://github.com/smaldini/grailsTodos




                                                       38
Enabling plugin authors




                          39
More Platform Core


                   Security API


             Who is the current user?


         Does the user have a particular role?


         Is user permitted to do something?




                                                 40
More Platform Core


                       Navigation API


  Menu


                                        Action



                                        Action




         Application                    Plugin



                                                 41
More Platform Core


                  Config API


               Declare config options


              Automatic namespacing


         Default values & automatic merging




                                              42
More Platform Core


                        Convention API

   e.g.

     static searchable = { ... }              @Taggable




                      Convention overrides!



                                                          43
Platform UI




                      Themes
                            +
                       UI tags


         e.g. App Info plugin + Bootstrap Kickstart



                                                      44
Project archetypes?




                      45
SQL database

 Multi page

   CRUD

   jQuery



               46
SQL for write

Redis for read

REST endpoints

  AngularJS


                 47
Events


     Spring Integration


Web Sockets (with emulation)



                               48
Summary

• The way applications are architected will change
  – Websites will still be built (GSP not gone yet)
  – Not everyone will need the same architecture
  – Project archetypes and scaffolding!
• No single framework has everything you need
• Pick and choose the appropriate components for your




                                                        49
More info

• w:   http://grails.org/
• f:   http://grails.org/Mailing+Lists

• e:   pledbrook@vmware.com
• t:   pledbrook
• b:   http://blog.springsource.com/author/peter-ledbrook/




                                                             50
Q&A




      51

More Related Content

What's hot

Klout case-study-v1.0
Klout case-study-v1.0Klout case-study-v1.0
Klout case-study-v1.0
Binh Tran
 
Modern Web Cloud Architecture based on Google Technologies
Modern Web Cloud Architecture based on Google TechnologiesModern Web Cloud Architecture based on Google Technologies
Modern Web Cloud Architecture based on Google Technologies
Michael Ludwig
 
Ibm test & development cloud + rational service delivery services platform
Ibm test & development cloud + rational service delivery services platformIbm test & development cloud + rational service delivery services platform
Ibm test & development cloud + rational service delivery services platform
Babak Hosseinzadeh
 

What's hot (8)

Klout case-study-v1.0
Klout case-study-v1.0Klout case-study-v1.0
Klout case-study-v1.0
 
Cloud foundry meetup 12112013
Cloud foundry meetup 12112013Cloud foundry meetup 12112013
Cloud foundry meetup 12112013
 
Introduction to cloud-native application development: with Heroku and Spring ...
Introduction to cloud-native application development: with Heroku and Spring ...Introduction to cloud-native application development: with Heroku and Spring ...
Introduction to cloud-native application development: with Heroku and Spring ...
 
Cloud Foundry May 1 2014
Cloud Foundry May 1 2014Cloud Foundry May 1 2014
Cloud Foundry May 1 2014
 
Modern Web Cloud Architecture based on Google Technologies
Modern Web Cloud Architecture based on Google TechnologiesModern Web Cloud Architecture based on Google Technologies
Modern Web Cloud Architecture based on Google Technologies
 
Ibm test & development cloud + rational service delivery services platform
Ibm test & development cloud + rational service delivery services platformIbm test & development cloud + rational service delivery services platform
Ibm test & development cloud + rational service delivery services platform
 
The Reality of DIY Kubernetes vs. PKS
The Reality of DIY Kubernetes vs. PKSThe Reality of DIY Kubernetes vs. PKS
The Reality of DIY Kubernetes vs. PKS
 
Spring Cloud in a Nutshell
Spring Cloud in a NutshellSpring Cloud in a Nutshell
Spring Cloud in a Nutshell
 

Viewers also liked

Viewers also liked (10)

Apache Maven for AT/QC
Apache Maven for AT/QCApache Maven for AT/QC
Apache Maven for AT/QC
 
Improving your Gradle builds
Improving your Gradle buildsImproving your Gradle builds
Improving your Gradle builds
 
Maven tutorial
Maven tutorialMaven tutorial
Maven tutorial
 
Gradle build automation tool
Gradle   build automation toolGradle   build automation tool
Gradle build automation tool
 
Gradle,the new build system for android
Gradle,the new build system for androidGradle,the new build system for android
Gradle,the new build system for android
 
Top 10 reasons to migrate to Gradle
Top 10 reasons to migrate to GradleTop 10 reasons to migrate to Gradle
Top 10 reasons to migrate to Gradle
 
An Introduction to Gradle for Java Developers
An Introduction to Gradle for Java DevelopersAn Introduction to Gradle for Java Developers
An Introduction to Gradle for Java Developers
 
Faster java ee builds with gradle [con4921]
Faster java ee builds with gradle [con4921]Faster java ee builds with gradle [con4921]
Faster java ee builds with gradle [con4921]
 
Gradle a new Generation Build Tool
Gradle a new Generation Build ToolGradle a new Generation Build Tool
Gradle a new Generation Build Tool
 
Gradle - Build System
Gradle - Build SystemGradle - Build System
Gradle - Build System
 

Similar to Grails & the World of Tomorrow

App Engine Presentation @ SFJUG Sep 2010
App Engine Presentation @ SFJUG Sep 2010App Engine Presentation @ SFJUG Sep 2010
App Engine Presentation @ SFJUG Sep 2010
Chris Schalk
 
GR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting GrailsGR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting Grails
GR8Conf
 
Adopting Grails - GR8Conf Europe
Adopting Grails - GR8Conf EuropeAdopting Grails - GR8Conf Europe
Adopting Grails - GR8Conf Europe
KlausBaumecker
 

Similar to Grails & the World of Tomorrow (20)

Grails and the World of Tomorrow
Grails and the World of TomorrowGrails and the World of Tomorrow
Grails and the World of Tomorrow
 
Cloud Computing for Barcamp NOLA 2009
Cloud Computing for Barcamp NOLA 2009Cloud Computing for Barcamp NOLA 2009
Cloud Computing for Barcamp NOLA 2009
 
App Engine Overview @ Google Hackathon SXSW 2010
App Engine Overview @ Google Hackathon SXSW 2010App Engine Overview @ Google Hackathon SXSW 2010
App Engine Overview @ Google Hackathon SXSW 2010
 
Open Cloud Frameworks - Open Standards for the Cloud Community
Open Cloud Frameworks - Open Standards for the Cloud CommunityOpen Cloud Frameworks - Open Standards for the Cloud Community
Open Cloud Frameworks - Open Standards for the Cloud Community
 
Kubecon SIG Apps December 2017 Update
Kubecon SIG Apps December 2017 UpdateKubecon SIG Apps December 2017 Update
Kubecon SIG Apps December 2017 Update
 
Cloud computing: highlights
Cloud computing: highlightsCloud computing: highlights
Cloud computing: highlights
 
What's new in App Engine and intro to App Engine for Business
What's new in App Engine and intro to App Engine for BusinessWhat's new in App Engine and intro to App Engine for Business
What's new in App Engine and intro to App Engine for Business
 
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
 
Accelerate your digital transformation
Accelerate your digital transformationAccelerate your digital transformation
Accelerate your digital transformation
 
Barak Regev - Google Cloud Platform
Barak Regev - Google Cloud PlatformBarak Regev - Google Cloud Platform
Barak Regev - Google Cloud Platform
 
Yannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflowYannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflow
 
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
 
DICE & Cloudify – Quality Big Data Made Easy
DICE & Cloudify – Quality Big Data Made EasyDICE & Cloudify – Quality Big Data Made Easy
DICE & Cloudify – Quality Big Data Made Easy
 
Java Web Programming Using Cloud Platform: Module 10
Java Web Programming Using Cloud Platform: Module 10Java Web Programming Using Cloud Platform: Module 10
Java Web Programming Using Cloud Platform: Module 10
 
Open Source für den geschäftskritischen Einsatz
Open Source für den geschäftskritischen EinsatzOpen Source für den geschäftskritischen Einsatz
Open Source für den geschäftskritischen Einsatz
 
Custom Runtimes for the Cloud
Custom Runtimes for the CloudCustom Runtimes for the Cloud
Custom Runtimes for the Cloud
 
The Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian CockcroftThe Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian Cockcroft
 
App Engine Presentation @ SFJUG Sep 2010
App Engine Presentation @ SFJUG Sep 2010App Engine Presentation @ SFJUG Sep 2010
App Engine Presentation @ SFJUG Sep 2010
 
GR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting GrailsGR8Conf 2011: Adopting Grails
GR8Conf 2011: Adopting Grails
 
Adopting Grails - GR8Conf Europe
Adopting Grails - GR8Conf EuropeAdopting Grails - GR8Conf Europe
Adopting Grails - GR8Conf Europe
 

More from Peter Ledbrook

Open source-and-you-gr8conf-us-2013
Open source-and-you-gr8conf-us-2013Open source-and-you-gr8conf-us-2013
Open source-and-you-gr8conf-us-2013
Peter Ledbrook
 

More from Peter Ledbrook (9)

Why Gradle?
Why Gradle?Why Gradle?
Why Gradle?
 
Why your build matters
Why your build mattersWhy your build matters
Why your build matters
 
Groovy for Java Developers
Groovy for Java DevelopersGroovy for Java Developers
Groovy for Java Developers
 
Application Architectures in Grails
Application Architectures in GrailsApplication Architectures in Grails
Application Architectures in Grails
 
Open source-and-you-gr8conf-us-2013
Open source-and-you-gr8conf-us-2013Open source-and-you-gr8conf-us-2013
Open source-and-you-gr8conf-us-2013
 
Groovy & Grails for Spring/Java developers
Groovy & Grails for Spring/Java developersGroovy & Grails for Spring/Java developers
Groovy & Grails for Spring/Java developers
 
Migrating to Cloud Foundry
Migrating to Cloud FoundryMigrating to Cloud Foundry
Migrating to Cloud Foundry
 
Grails 2.0 Update
Grails 2.0 UpdateGrails 2.0 Update
Grails 2.0 Update
 
Cloud Foundry for Java devs
Cloud Foundry for Java devsCloud Foundry for Java devs
Cloud Foundry for Java devs
 

Recently uploaded

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 

Grails & the World of Tomorrow

  • 1. Grails & the World of Tomorrow Peter Ledbrook, Developer Advocate pledbrook@vmware.com / @pledbrook © 2012 SpringOne 2GX. All rights reserved. Do not distribute without permission. 1
  • 2. NoSQL HTML5.js Cloud Social 2
  • 3. HTML5.js Web sites Applications Server-side HTML Client-side HTML Low interactivity High interactivity No offline Offline Wikipedia 3
  • 4. HTML5.js Web sites Applications Server-side HTML Client-side HTML Low interactivity High interactivity No offline Offline Twitter 4
  • 5. HTML5.js Web sites Applications Server-side HTML Client-side HTML Low interactivity High interactivity No offline Offline GMail 5
  • 6. HTML5.js We’re going this way! Web sites Applications Server-side HTML Client-side HTML Low interactivity High interactivity No offline Offline Example: REST + JSON Backbone.js + Moustache 6
  • 7. Google I/O 2012 400 million Android activations to date Apple WWDC 2012 365 million iOS devices sold to date 7
  • 8. Is this the end for server-side templates? 8
  • 9. NoSQL / Big Data Data the way you want it! 9
  • 10. NoSQL / Big Data Everyone has interesting data 10
  • 11. 11
  • 12. Cloud Scaling Reduced capital costs Easier administration 12
  • 13. Cloud Ephemeral Session filesystems management No Multicast 13
  • 14. 14
  • 15. A typical Grails app HTTP Controller View Service GORM/Hibernate Database 15
  • 16. 16
  • 17. What do these cars have in common? 17
  • 18. Same platform, different components 18
  • 19. Core Grails == Chassis Plugins == Components 19
  • 20. How can Grails help - Rich UIs? URL mappings for REST JSON & XML converters Resources (for JS & CSS) zipping, caching, compression 20
  • 21. Static resource handling App Kickstart Bootstrap Shiro UI Plugin Plugin Twitter Bootstrap Plugin 21
  • 22. Scaffolding libraries > grails install-plugin jquery-mobile-scaffolding > grails install-mobile-templates > grails create-domain-class org.example.Todo <edit Book.groovy> > grails generate-all org.example.Todo > grails run-app 22
  • 23. How can Grails help - Social? Simplified OAuth via OAuth plugin: oauth { providers { twitter { api = TwitterApi key = 'my-key' secret = 'my-secret' successUri = '/' failureUri = '/' } } } 23
  • 24. How can Grails help - Social? <oauth:connect provider="twitter"> Connect to Twitter </oauth:connect> class MyService { def oauthService def myMethod() { def twitterUsers = oauthService.getTwitterResource( twitterAccessToken, "http://api.yourprovider.com/users/list") ... } } 24
  • 25. How can Grails help - NoSQL? Accessible NoSQL via GORM Domain Model GORM 25
  • 26. How can Grails help - Cloud? Solve the caching problem with the Cache plugin Cache plugin Ehcache Redis For HTTP sessions, Database Session plugin Database Session plugin MongoDB Cookie 26
  • 27. 27
  • 28. PaaS deployment Rabbitmq Redis Plugin App Plugin > grails cf-push 28
  • 29. What about horizontal scalability? 29
  • 30. Introducing CQRS Updates Store changes Concurrency via event bus Views Separate data stores for queries 30
  • 31. Event bus (Platform Core plugin) Update Call REST Save entity Index read DBs service Event Bus Plugins Plugins Plugins Application 31
  • 32. Event bus (Events SI plugin) Update Call REST Save entity Index read DBs service Event Bus (SI) AMQP Plugins Plugins Plugins Application 32
  • 33. Event bus (Events Push plugin) Browser Event Bridge Event Bus (SI) Plugins Plugins Plugins Application 33
  • 38. grailsTodos sample Try it: http://grailstodos.cloudfoundry.com/todos/ See the code: http://github.com/smaldini/grailsTodos 38
  • 40. More Platform Core Security API Who is the current user? Does the user have a particular role? Is user permitted to do something? 40
  • 41. More Platform Core Navigation API Menu Action Action Application Plugin 41
  • 42. More Platform Core Config API Declare config options Automatic namespacing Default values & automatic merging 42
  • 43. More Platform Core Convention API e.g. static searchable = { ... } @Taggable Convention overrides! 43
  • 44. Platform UI Themes + UI tags e.g. App Info plugin + Bootstrap Kickstart 44
  • 46. SQL database Multi page CRUD jQuery 46
  • 47. SQL for write Redis for read REST endpoints AngularJS 47
  • 48. Events Spring Integration Web Sockets (with emulation) 48
  • 49. Summary • The way applications are architected will change – Websites will still be built (GSP not gone yet) – Not everyone will need the same architecture – Project archetypes and scaffolding! • No single framework has everything you need • Pick and choose the appropriate components for your 49
  • 50. More info • w: http://grails.org/ • f: http://grails.org/Mailing+Lists • e: pledbrook@vmware.com • t: pledbrook • b: http://blog.springsource.com/author/peter-ledbrook/ 50
  • 51. Q&A 51