0
Grails 101     Lim Chee Kin     limcheekin@vobject.com     http://limcheekin.blogspot.com
About Me●   Moderator of the Malaysia Groovy and Grails User Group●   Involved in Grails development since version 0.6 and...
Why Grails●●●   To practice agile development process you    need an agile framework.
Inside Grails●   Seamless integration of ...●   Groovy                ●   Tomcat●   Java                  ●   Ant●   Sprin...
Best Practices Support●   Convention over Configuration         standard directory    structure●   Dependency Injection Sp...
Running Grails App in 5 minutes●   Step 1: grails create-app addressbook●●   Step 2: grails create-domain-class Person●●  ...
Step 1: grails create-app addressbook●   Created Grails Application at /opt/dev/ws/addressbook
Step 1: grails create-app addressbook    /addressbook●     application.properties●     grails-app/conf/            --> loc...
Step 2: grails create-domain-class Person●   Created file grails-app/domain/addressbook/Person.groovy    Created file test...
Step 3: grails generate-all Person●   Finished generation for domain class addressbook.Person
Step 4: grails run-appServer running. Browse to http://localhost:8080/addressbook
Step 4: grails run-app
Step 4: grails run-app
My Open Source Grails Plugins●   I contributed 15 Grails plugins out of 826    (13 Aug 2012), including:●   Grails Activit...
Q&A
Upcoming SlideShare
Loading in...5
×

Grails 101

2,090

Published on

Grails Introduction Slides

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,090
On Slideshare
0
From Embeds
0
Number of Embeds
32
Actions
Shares
0
Downloads
34
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Grails 101"

  1. 1. Grails 101 Lim Chee Kin limcheekin@vobject.com http://limcheekin.blogspot.com
  2. 2. About Me● Moderator of the Malaysia Groovy and Grails User Group● Involved in Grails development since version 0.6 and developed 15 Grails plugins to date● 10+ years experience in software development and solution consulting for Java EE platform● Experience spans across various industries, including retail sector, telecommunication, heath care and financial services industry.● Experienced in many frameworks and web technologies, including Java EE, SpringFramework, Hibernate, Groovy, Grails Framework, Web Services, JQuery, JQuery UI
  3. 3. Why Grails●●● To practice agile development process you need an agile framework.
  4. 4. Inside Grails● Seamless integration of ...● Groovy ● Tomcat● Java ● Ant● SpringFramework ● Maven● Hibernate ● Log4J● Java EE ● H2 Database● Sitemesh ● Quartz● JQuery ● ... many more
  5. 5. Best Practices Support● Convention over Configuration standard directory structure● Dependency Injection SpringFramework● Model domain class View GSP Controller groovy class● Test Automation JUnit, Spock● Modularization plugin system● Code Generation scaffolding● Fast Development Cycle dynamic reloading
  6. 6. Running Grails App in 5 minutes● Step 1: grails create-app addressbook●● Step 2: grails create-domain-class Person●● Step 3: grails generate-all Person●● Step 4: grails run-app
  7. 7. Step 1: grails create-app addressbook● Created Grails Application at /opt/dev/ws/addressbook
  8. 8. Step 1: grails create-app addressbook /addressbook● application.properties● grails-app/conf/ --> location of configuration artifacts● grails-app/conf/hibernate --> optional hibernate config● grails-app/conf/spring --> optional spring config● grails-app/controllers/ --> location of controller artifacts● grails-app/domain/ --> location of domain classes● grails-app/i18n/ --> location of message bundles for i18n● grails-app/services/ --> location of services● grails-app/taglib/ --> location of tag libraries● grails-app/utils/ --> location of grails specific utility classes● grails-app/views/ --> location of views● grails-app/views/layouts --> location of layouts● lib/ --> jar files not available via installed plugins● scripts/ --> scripts● src/groovy --> optional; location for Groovy source files (of types other than those in grails-app/*)● src/java --> optional; location for Java source files● test/ --> test classes● web-app/ --> css, images, etc, etc, etc.
  9. 9. Step 2: grails create-domain-class Person● Created file grails-app/domain/addressbook/Person.groovy Created file test/unit/addressbook/PersonTests.groovy●● class Person {● String firstName● String lastName● Date dateOfBirth● Integer age●● static constraints = {● firstName(nullable:true, maxSize:60)● lastName(nullable:true, maxSize:30)● dateOfBirth(nullable:true, maxSize:10)● age(nullable:true)● }● }
  10. 10. Step 3: grails generate-all Person● Finished generation for domain class addressbook.Person
  11. 11. Step 4: grails run-appServer running. Browse to http://localhost:8080/addressbook
  12. 12. Step 4: grails run-app
  13. 13. Step 4: grails run-app
  14. 14. My Open Source Grails Plugins● I contributed 15 Grails plugins out of 826 (13 Aug 2012), including:● Grails Activiti Plugin● http://code.google.com/p/grails-activiti-plugin/● Grails Form Builder Plugin● http://code.google.com/p/grails-form-builder-plugin/● JQuery Validation UI Plugin● http://grails.org/plugin/jquery-validation-ui● Mahout Recommender Plugin● https://github.com/limcheekin/mahout-recommender● Find out more at http://goo.gl/VPVrd
  15. 15. Q&A
  1. A particular slide catching your eye?

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

×