Invalid quantity. Please enter a quantity of 1 or more.
The quantity you chose exceeds the quantity available.
Please enter your name.
Please enter an email address.
Please enter a valid email address.
Please enter your message or comments.
Please enter the code as shown on the image.
Please select the date you would like to attend.
Please enter an email address.
Please enter a valid email address in the To: field.
Please enter a subject for your message.
Please enter a message.
You can only send this invitations to 10 email addresses at a time.
$$$$ is not a properly formatted color. Please use the format #RRGGBB for all colors.
Please limit your message to $$$$ characters. There are currently ££££.
$$$$ is not a valid email address.
Please enter a promotional code.
N/A
Sold Out
You have exceeded the time limit and your reservation has been released.
The purpose of this time limit is to ensure that registration is available to as many people as possible. We apologize for the inconvenience.
This is option is not available anymore. Please choose a different option.
Please read and accept the waiver.
All fields marked with * are required.
Please double check your email address. The email address format does not appear valid.
$$$$ requires a number between ££££ and §§§§
US Zipcodes need to be 5 digits.
Please double check your website URL.
All fields marked with * are required.
Your credit card expiration date is in the past.
Your credit card CSC needs to be 4 digits.
Please confirm your order:
$$$$
You have selected to Pay by Check.
Click OK to confirm your order.
Please confirm your order:
$$$$
You have selected to Pay at the Door.
Click OK to confirm your order.
Please confirm your order:
$$$$
You have selected to Pay upon Receiving an Invoice.
Click OK to confirm your order.
Your credit card CSC needs to be 3 digits.
Your billing zip code needs to be 5 digits.
There was a problem saving your address.
There was a problem saving your credit card info.
There was a problem saving your personal information.
Please select the date you would like to attend.
McAfee Secure sites help keep you safe from identity theft, credit card fraud, spyware, spam, viruses and online scams.
Copying Prohibited by Law - McAfee Secure is a Trademark of McAfee, Inc.
Unknown card type.
No card number provided.
Credit card number is in invalid format.
Wrong card type or credit card number is invalid.
Credit card number has an inappropriate number of digits.
Please enter numbers here.
Please enter an integer value.
Numbers must be less or equal to $$$$
All the required fields have not been filled out. Click OK to proceed without all the required information, or click Cancel to finish entering the missing data.
Sorry, invalid event registration form.
Sorry, invalid event or database error.
Sorry, quantity must be a positive integer.
Sorry, you did not select a valid ticket.
Sorry, invalid event organizer email address.
Your order was canceled.
Thank You. Your order has been successfully completed. Your name and email address have been added to the list of event attendees.
Sorry, that option is sold out.
Sorry, that option is no longer available.
Sorry, there are only tickets of that type still available.
Sorry, you entered an invalid quantity. Please enter a quantity of 1 or more next to the type or types of tickets you would like to purchase.
Sorry, you did not select any tickets to purchase. Please enter a quantity of 1 or more next to the type or types of tickets you would like to purchase.
Sorry, there are no tickets left for this event.
The tickets, ticket quantity or date and time you've requested are no longer available, due to previous sales. Please choose a different date, time or number of tickets and place your order again.
Sorry, one or more of the tickets you requested are no longer available for purchase.
Sorry, you need to select the date you want to attend.
Sorry, the promotional code you entered is not valid yet.
Sorry, the promotional code you entered has expired.
Sorry, the promotional code you entered is not valid.
Your session has expired. Try ordering again.
Sorry, your requested ticket quantity exceeds the number provided by your promotional code.
Sorry, the tickets you are trying to order are not currently available.
Sorry, the payment type chosen is invalid for this event.
Sorry, there is only 1 ticket left for this event.
Sorry, there are only tickets left for this event.
We're sorry, this invitation is invalid.
We're sorry, this invitation has already been used.
We're sorry, you already have an order being processed for this event. Please wait a few minutes and try again.
We're sorry, there is a problem with your invitation. Please try again.
Invalid quantity of tickets selected.
Sorry, the payment type chosen is invalid for this event.
Sorry, your billing address was not saved properly, please try again.
Sorry, we experienced an internal error, please try again.
The captcha you entered is invalid. Please try again.
Invalid credit card selected. You have been logged out.
Sorry, your team selection was not valid.
Sorry, the payment type chosen is invalid for this event.
Sorry, your billing address was not saved properly, please try again.
Sorry, we experienced an internal error, please try again.
State
Zip Code
Province
Postal Code
County
State/Territory
State/Province
Event Details
Grails is a Java- and Groovy-based web framework that is built for speed. First-time developers are amazed at how quickly you can get a page-centric Model/View/Controller (MVC) web site up and running thanks to the scaffolding and convention over configuration that Grails provides. Advanced web developers are often pleasantly surprised at how easy it is to "shell out" of the framework and get to the Spring and Hibernate underpinnings.
This course will bring you up to speed with Grails in a hands-on, fast-paced, lab-intensive way. No prior web development experience—Java or otherwise—is required.
The course is Mastering Grails for Beginners. It includes the following material:
What is Groovy? What is Grails?
Understanding how Groovy and Grails fit into the Java ecosystem is an important first step. Groovy doesn’t replace Java -- it is meant to complement Java. Grails dramatically speeds up the web development, but you still end up with a Java Enterprise Edition WAR file at the end of the day. We’ll introduce key concepts like scaffolding, convention over configuration, closures, and the power of metaprogramming.
Installing Groovy and Grails
In this section, students will install the Java JDK (if necessary), Groovy, and Grails -- creating an environment variable and adding the projects to the PATH are all it takes. We’ll also discuss language support in popular text editors and Java IDEs.
Creating your first Grails application
Type "grails create-app" and you have taken your first step. In less than 5 minutes, you will have your first Grails application up and running. After that is out of the way, we’ll circle back and explore the basic directory structure of a Grails app and put together our plan of attack for the rest of the class.
Connecting to an external database
The embedded HSQLDB database is a great for prototyping, but most production applications rely on an external database like MySQL, PostgreSQL, Oracle, or DB2. You’ll see how easy it is to migrate to a new database and use different database configurations for development, testing, and production mode.
Understanding Models
Groovy classes (or POGOs -- Plain Old Groovy Objects) are the foundation of Grails. In this section, students will learn how to add fields to a POGO. We’ll also learn how to sort fields, validate fields, customize error messages, and even create a quick one-to-many relationship.
Understanding Controllers
Controllers are the "traffic cop" of a MVC web framework. You’ll learn how to generate controllers and dynamically scaffold them out at runtime. Along the way, you’ll see the metaprogrammed GORM methods added to the POGOs, learn out URLs are resolved, play with the various scopes, and see how parameters are passed back and forth between the web browser and the controller.
Understanding Views
Groovy Server Pages (GSPs) are the default view layer in a Grails application. In this section, you’ll explore the various built-in GSP tags. You’ll also learn about SiteMesh, creating custom TagLibs, creating partial templates, and modifying the default Grails templates.
Querying with GORM
GORM is the Grails Object/Relational Mapper. In reality, it is a thin Groovy facade over Hibernate. Students will explore the basic Create/Retrieve/Update/Delete (CRUD) capabilities of GORM. From there, we’ll see advanced features like Dynamic Finders (book.findByAuthorAndTitle(), book.findAllPagesBetween(), and so on), Hibernate Query Language (HQL), Query By Example (QBE), and more.
Understanding Services
Services are where you place the business logic of your application that isn’t concerned with basic CRUD. In this section, you’ll create a service and call it from a controller.
Adding Ajax
Ajax (Asynchronous Javascript and XML) requests allow you to break out of the coarse-grained, page-centric HTTP request/response cycle. It allows you to update individual fields independently of the rest of the page. We’ll see the native Ajax capabilities of Grails in action, courtesy of Prototype.js and the included GSP tags (including g:formRemote and g:remoteLink).
Returning XML and JSON
Returning HTML is just one of Grails' tricks. It is equally adept at returning XML and JSON (Javascript Object Notation). In this section, you’ll see how easy it is to quickly send back something other than a webpage.
Grails and Legacy Databases
In this last section, we’ll talk about skinning existing databases with Grails. The real power of GORM shines when you see how your class and field names can differ dramatically from the underlying table and column names. You’ll see the static mapping block used in POGOs, as well as Java classes with EJB3 annotations and Hibernate HBM files.
When & Where
Embassy Suites Bellevue
3225 158th Avenue SE
Bellevue,
WA 98008
Tuesday, May 25, 2010 at 8:00 AM - Thursday, May 27, 2010 at 5:00 PM (PT)
Add to my calendar