<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2465719483363596047</id><updated>2011-12-21T01:08:00.682-07:00</updated><category term='Grails'/><category term='JFreeChart'/><category term='Charts'/><category term='GWT'/><category term='2007'/><category term='Java'/><category term='GWT-Ext'/><category term='Groovy'/><category term='Ext'/><title type='text'>Geek Speak</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://geekyryan.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2465719483363596047/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://geekyryan.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Brent Ryan</name><uri>http://www.blogger.com/profile/11029327635235643876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp1.blogger.com/_736XA9IyWEo/R7JSCufTG8I/AAAAAAAABMA/gkO-O0cbNgI/S220/DSCF0680.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2465719483363596047.post-776286734767645552</id><published>2007-12-25T09:36:00.003-07:00</published><updated>2009-12-03T19:26:59.732-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT-Ext'/><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='JFreeChart'/><category scheme='http://www.blogger.com/atom/ns#' term='Ext'/><category scheme='http://www.blogger.com/atom/ns#' term='Groovy'/><category scheme='http://www.blogger.com/atom/ns#' term='Charts'/><category scheme='http://www.blogger.com/atom/ns#' term='2007'/><category scheme='http://www.blogger.com/atom/ns#' term='Grails'/><title type='text'>GWT-Ext and Grails just works!</title><content type='html'>After about a year of experimenting with web frameworks I think I've finally found something that works well...&lt;br /&gt;&lt;br /&gt;Using &lt;a href="http://code.google.com/webtoolkit/"&gt;GWT &lt;/a&gt;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.&lt;br /&gt;&lt;br /&gt;Using &lt;a href="http://grails.codehaus.org/"&gt;Grails &lt;/a&gt;as a server framework is helpful because it's a DSL (&lt;a href="http://groovy.codehaus.org/"&gt;groovy&lt;/a&gt;) which provides many additions to the Java JDK, closures, convention over configuration, dynamic finders, and many more useful features that make you productive.&lt;br /&gt;&lt;br /&gt;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 &lt;a href="http://extjs.com/"&gt;Ext &lt;/a&gt;and the &lt;a href="http://code.google.com/p/gwt-ext/"&gt;GWT-Ext&lt;/a&gt; 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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Anyways, check out my sample GWT-Ext+Grails application &lt;a href="http://www.brentryan.com/client"&gt;here (http://www.brentryan.com/client)&lt;/a&gt; &lt;-- 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 &lt;a href="http://www.jfree.org/jfreechart/"&gt;JFreeChart &lt;/a&gt;from the grails backend and displaying them in the GWT client.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Example application login/password&lt;/span&gt;&lt;br /&gt;username: admin&lt;br /&gt;password: admin&lt;br /&gt;&lt;br /&gt;Email if you have any questions brent.ryan@gmail.com&lt;br /&gt;&lt;br /&gt;Source code for this example can be found &lt;a href="https://code.google.com/p/example-gwt-grails/"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Pre-built client and server war files can be downloaded:&lt;br /&gt;Download --&gt; &lt;a href="http://www.brentryan.com/client.war"&gt;client&lt;/a&gt;&lt;br /&gt;Download --&gt; &lt;a href="http://www.brentryan.com/server.war"&gt;server&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Update: GWT-Ext 2.0 was released and requires much of these api's to be updated.  Check out the live &lt;a href="http://www.gwt-ext.com/demo"&gt;demo&lt;/a&gt;.  I think it's very impressive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2465719483363596047-776286734767645552?l=geekyryan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekyryan.blogspot.com/feeds/776286734767645552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2465719483363596047&amp;postID=776286734767645552' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2465719483363596047/posts/default/776286734767645552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2465719483363596047/posts/default/776286734767645552'/><link rel='alternate' type='text/html' href='http://geekyryan.blogspot.com/2007/12/gwt-ext-and-grails-just-works.html' title='GWT-Ext and Grails just works!'/><author><name>Brent Ryan</name><uri>http://www.blogger.com/profile/11029327635235643876</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp1.blogger.com/_736XA9IyWEo/R7JSCufTG8I/AAAAAAAABMA/gkO-O0cbNgI/S220/DSCF0680.jpg'/></author><thr:total>17</thr:total></entry></feed>
