Showing posts with label Grails. Show all posts
Showing posts with label Grails. Show all posts

Monday, March 12, 2012

Grails2 Features

New grails version2.0
During the work on the feature branch of grails-version 3: Grails Upcoming Version,
here the new delivered features of Grails2:
  • All views will be made via generator in HTML5 with use of JQuery
    • Advantage: client validation like syntax-checking
    • better usability: feedback during inserts etc.
    • mandatory fields which are defined in the domain class are accordingly rendered:
      • with dynamic scaffolding static constraints are defined in the domain class and the dynamic view renders the fields as mandatory fields(e.g. with an * and validates the field accordingly):
                                 class domainX {
                                   String name
                                   ...
                                   static constrains = {
                                        name blank:false
                                  }
                                }
                     On the view the field name will be rendered as mandatory field.
    • Server errors(HTTP Statuscode 500) are represented in a neat way: with stacktrace, message and the according groovy class.
  • better performance: static ressources like images, CSS, *.js will be packed on the client side and cached
  • New support for nosql-databases:
    • Those can be accessed with the help of GORM.
  • Persistence features:
    • Detached Queries (reusable Queries beyond persistence session)
    • Type-secure, compile-time secure Where-Queries!
    • new convenient persistence methods: findOrCreate() etc.
    • Abstract domain classes
  • Grails-console has now got a TAB-completion like in a Linux-console
  • Errors will be displayed on the Grails-console formatted and in colour
  • Controller-Features
    • Actions can now be methods and must not be anymore closures
    • For a controller automatically unit tests can be generated:
      • so called @TestFor-annotation with the class as parameter: 
        • @TestFor(XYController)