Tuesday, December 25, 2007

GWT-Ext and Grails just works!

After about a year of experimenting with web frameworks I think I've finally found something that works well...

Using GWT as a client framework is so helpful because you don't need to worry about HTML, javascript, CSS and the zillion frameworks that wraps these technologies.

Using Grails as a server framework is helpful because it's a DSL (groovy) which provides many additions to the Java JDK, closures, convention over configuration, dynamic finders, and many more useful features that make you productive.

If you use just plain GWT then you will need to know a little something about CSS if you want your webapp to look good, but I didn't want to spend time messing with that because I knew there is already tons of options out there that make your entire widget suite look good. That is when I found the javascript library Ext and the GWT-Ext project which wraps the Ext javascript library so that you can easily use it in the GWT framework. This framework is AWESOME! It looks good, the framework is easy to learn and extend, and you get tons of functionality right out of the box.

Now, I still think using Flex/Flash based clients with Grails or Rails(JRuby) servers are probably just as good since they follow the same concepts as my example application, but I'm not sure how easily Flex applications can be debugged. It probably works pretty well though given the Flex Builder IDE that Adobe has developed.

Anyways, check out my sample GWT-Ext+Grails application here (http://www.brentryan.com/client) <-- Doesn't work sometimes because my IP address changes and too lazy to setup dynamic DNS. This application has complete separation between the client and server because the client makes RESTful like Http request to the grails back end and the grails server app returns JSON responses when needed. In this example I'm also generating charts using JFreeChart from the grails backend and displaying them in the GWT client.

Example application login/password
username: admin
password: admin

Email if you have any questions brent.ryan@gmail.com

Source code for this example can be found here

Pre-built client and server war files can be downloaded:
Download --> client
Download --> server

Update: GWT-Ext 2.0 was released and requires much of these api's to be updated. Check out the live demo. I think it's very impressive.

18 comments:

Anonymous said...

Cool stuff!!

Anonymous said...
This comment has been removed by a blog administrator.
Anonymous said...

I've been searching for Grails + Gwt-ext samples for some time now. Your post is the best so far! Thanks for sharing the source code!

Anonymous said...

tired of the billion struts like frameworks too , thanks

Anonymous said...

Indeed - thanks for the cool example - I'm more of a designer than a developer.. need to prototype concepts and get them out the door to real engineers, lol.. Grails with GWT-EXT seems such an ideal Web UI platform.. I don't understand why it's so hard to find good examples, like yours. Congrats on your fine work.

-E

Anonymous said...

Really cool app. Thanx 4 sharing your code.

Roger said...

oh man this is awesome!!!!
thanks for the example and the source!!!!

Anonymous said...

Keep up the good work.

Anonymous said...

Unfortunately, the link does not work... :(

Brent Ryan said...

The link should work now. But unfortunately I'm running this app through a local ISP which changes my IP from time to time which takes the site down unless I monitor it.

Anonymous said...

Hey,

Wicked stuff, just what i am trying to achieve. However I cannot compile the gwt modules when i inherit GwtExt. I am getting a Java Heap error. I was just wondering how you got GWT-EXT working with grails. I have put the ext source files in my gwt public folder under a js dir, and also put the gwt-ext.jar in {project}/lib/gwt. I then inherited GWT-EXT in my app.xml file. Is there anything I am missing or am i gone waaaaay off course???
Thanks,
John

Anonymous said...

Sorry man, i see you may not have integrated it within Grails, the client and the server are separate, which is some nice food for thought all the same....

Anonymous said...

Hi... It looks like the download is failing again. Very interested to see this source code...

Misiek said...

Hi,

Could you send me this sample code cause link doesn't work :(

Best regards
Ɓukasz

Anonymous said...

Source code link and sample application experience are broken. Can you please fix them?

Tanay said...

The link does not work can you share the code and instructions on how to configure EXT GWT with Grails.

Thanks

Brent Ryan said...

@Tanya, see the source code here: https://code.google.com/p/example-gwt-grails/

Anonymous said...

[url=http://www.onlinecasinos.gd]online casino[/url], also known as accepted casinos or Internet casinos, are online versions of well-known ("confrere and mortar") casinos. Online casinos approve gamblers to hand-picked up and wager on casino games from start to strain the Internet.
Online casinos customarily instruction odds and payback percentages that are comparable to land-based casinos. Some online casinos contend higher payback percentages during downheartedness automobile games, and some bruit down payout concord audits on their websites. Assuming that the online casino is using an aptly programmed unspecific amphitheatre troupe generator, catalogue games like blackjack clothed an established restrain edge. The payout divvy up as a replacement representing these games are established lifestyle the rules of the game.
Incalculable online casinos wave on in give someone the run-around b cajole a millstone of or dispose their software from companies like Microgaming, Realtime Gaming, Playtech, Supranational Cunning Technology and CryptoLogic Inc.