<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>[Be el o ge] &#187; GWT</title>
	<atom:link href="http://blog.project-sierra.de/archives/category/gwt/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.project-sierra.de</link>
	<description>I &#9829; The Web</description>
	<lastBuildDate>Sun, 29 Aug 2010 17:59:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Using GWT Canvas</title>
		<link>http://blog.project-sierra.de/archives/1013</link>
		<comments>http://blog.project-sierra.de/archives/1013#comments</comments>
		<pubDate>Wed, 30 Sep 2009 19:51:04 +0000</pubDate>
		<dc:creator>skarabaeus</dc:creator>
				<category><![CDATA[GWT]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://blog.project-sierra.de/?p=1013</guid>
		<description><![CDATA[One of the exciting new features of HTML5 is the Canvas element. Today evening I checked out two libraries implementing the Canvas element for the Google Web Toolkit.

GWT-Canvas by Oliver Zoran
GWTCanvas as part of the GWT Incubator

I can&#8217;t really tell which library is better. Both seem to handle the Canvas API well. The biggest disadvantage [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p><p>One of the exciting new features of HTML5 is the Canvas element. Today evening I checked out two libraries implementing the Canvas element for the Google Web Toolkit.</p>
<ul>
<li><a href="http://code.google.com/p/gwt-canvas/">GWT-Canvas</a> by Oliver Zoran</li>
<li><a href="http://code.google.com/p/google-web-toolkit-incubator/wiki/GWTCanvas">GWTCanvas</a> as part of the <a href="http://code.google.com/p/google-web-toolkit-incubator/">GWT Incubator</a></li>
</ul>
<p>I can&#8217;t really tell which library is better. Both seem to handle the <a href="http://">Canvas API</a> well. The biggest disadvantage at the moment is that you can&#8217;t run your code in hosted mode. The Incubator version promises that hosted mode works on Mac systems though. Users of other operating system will probably have to wait for <a href="http://code.google.com/p/google-web-toolkit/wiki/DesignOOPHM">OOPHM</a> (Out Of Process Hosted Mode) which will be released along with GWT 2.0.<br />
In my opinion one argument speaking for using the Incubator version is that this version is maintained directly by Google and that you get a lot more cool features by including the Incubator JAR.</p>
<!-- google_ad_section_end --><p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F1013&amp;linkname=Using%20GWT%20Canvas" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F1013&amp;linkname=Using%20GWT%20Canvas" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F1013&amp;linkname=Using%20GWT%20Canvas" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F1013&amp;linkname=Using%20GWT%20Canvas" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F1013&amp;linkname=Using%20GWT%20Canvas" title="Reddit" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F1013&amp;linkname=Using%20GWT%20Canvas" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F1013&amp;linkname=Using%20GWT%20Canvas" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F1013&amp;linkname=Using%20GWT%20Canvas" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.project-sierra.de/archives/1013/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Frontend with GWT. What about the server side?</title>
		<link>http://blog.project-sierra.de/archives/972</link>
		<comments>http://blog.project-sierra.de/archives/972#comments</comments>
		<pubDate>Sun, 06 Sep 2009 13:25:41 +0000</pubDate>
		<dc:creator>skarabaeus</dc:creator>
				<category><![CDATA[GWT]]></category>
		<category><![CDATA[Grails]]></category>
		<category><![CDATA[RubyOnRails]]></category>

		<guid isPermaLink="false">http://blog.project-sierra.de/?p=972</guid>
		<description><![CDATA[The past few weeks I&#8217;ve been playing around with the Google Web Toolkit and I&#8217;m pretty persuaded that it&#8217;s the best choice for implementing Rich Internet Applications. Google itself used it for the Google Waves front-end and for a complete re-write of the Google Adsense admin application. There are other companies out there using GWT [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p><p>The past few weeks I&#8217;ve been playing around with the <a href="http://code.google.com/intl/de-DE/webtoolkit/">Google Web Toolkit</a> and I&#8217;m pretty persuaded that it&#8217;s the best choice for implementing Rich Internet Applications. Google itself used it for the Google Waves front-end and for a complete re-write of the Google Adsense admin application. There are other companies out there using GWT in an enterprise environment ,e.g. <a href="http://http://www.lombardisoftware.com/">Lombardi Blueprint</a>. </p>
<p><strong>How to communicate with the server?</strong></p>
<p>GWT supports two ways to communicate with the server. The first is <a href="http://http://code.google.com/intl/de-DE/webtoolkit/doc/1.6/DevGuideServerCommunication.html#DevGuideRemoteProcedureCalls">GWT-RPC</a> which requires a Java server side because you need to implement a Servlet. Now this sounds more painful than it is. In fact it&#8217;s pretty straight forward. The really nice thing about it is, that you don&#8217;t have to think about serialization / deserialization of your objects. The Google Web Toolkit will take care of that.<br />
The second approach is rather classical and that is to send and receive JSON or XML. Clearly this enables you to use whatever server side framework and that is great. The downside of this flexibility is that you have to take care of serialization by yourself. Luckily Ryan Dewsbury provided a code generator in his <a href="http://my.safaribooksonline.com/9780321501967?portal=informit">GWT Applications Book</a> which automatically generates the serialization code for you. Check out the code on his <a href="http://www.gwtapps.com/?p=46">webpage</a>.</p>
<p><strong>Ok cool, so that means I should take which framework?</strong></p>
<p>There are so many web frameworks out there that it&#8217;s not hard to loose completely overview. For my personal preference I can narrow down the number of frameworks to consider to these two: <a href="http://rubyonrails.org/">Ruby on Rails</a> and <a href="http://grails.org/">Grails</a>, the Java web application framework based on the <a href="http://groovy.codehaus.org/">Groovy</a> programming language.</p>
<p>Ruby on Rails is currently by far the most popular web application framework. What I really love about the framework is that you get all in one. A descend MVC architecture, Templates, easy REST, testability, database migrations, a very healthy and active community (which is really really important), Ruby, hundreds of plugins, you name it. The framework has gone through two major iterations and can be considered business ready. Companies like <a href="http://www.thoughtworks.com/">Thoughtworks</a> generate a big part of their annual revenue with Ruby and Rails projects. There are great hosting companies (<a href="http://www.engineyard.com/">Engine Yard</a>, <a href="http://www.brightbox.co.uk/">BrightBox</a>, <a href="http://heroku.com/">Heroku</a> to mention just a few), the deployment <a href="http://www.loudthinking.com/posts/30-myth-1-rails-is-hard-to-deploy">became much easier</a> than in the early days and when it comes to performance you have a whole bunch of great choices to improve it (check out this series of <a href="http://railslab.newrelic.com/scaling-rails">screencasts</a>).</p>
<p>Grails uses Groovy as language. Both Grails and Groovy look very similar to Rails and Ruby. Grails is still pretty young but I believe in the coming years we will see a lot more Grails applications. One reason for this is the very tight integration with Java. So are for example most valid Java programs also valid Groovy programs. This makes it really easy for Java developers to try it out. Also Grails builds up on proven Java technologies like <a href="https://www.hibernate.org/">Hibernate</a>, <a href="http://www.opensymphony.com/sitemesh/">SiteMesh</a> and <a href="http://www.springsource.org/">Spring</a>. So though Grails might still have some quirks, the technologies underneath are out there for quite a while and used in thousands of applications. This also makes it easier to re-use existing code and infrastructure and sort of gradually move towards a more agile environment. It&#8217;s really made simple to use technologies like JMQ, JMX or libraries like <a href="http://lucene.apache.org/java/docs/">Lucene</a>.<br />
Despite Grails is build upon things you know from JEE you don&#8217;t have to go through configuration hell. Grails puts Convention over Configuration and sets useful defaults just like Rails does.</p>
<p><strong>Conclusion</strong></p>
<p>Ruby on Rails is the original, it&#8217;s proven and you finally don&#8217;t have to worry any more about the <a href="http://twittch.com/24/">Java technology stack</a>. The only downside in terms of using GWT on the front-end is that you can&#8217;t use GWT-RPC.</p>
<p>Grails is great if you need to integrate with Java. Because of the big Java community we will see more talk about Grails in future. It&#8217;s also a good choice in combination with GWT. There&#8217;s a plugin for GWT and also AppEngine.</p>
<p>All in all I believe you don&#8217;t do anything from with either framework. It&#8217;s about personal preference. I&#8217;d like to see some performance comparison between GWT-RPC and the JSON/XML approach with generated serializer though. Your choice might be influenced by existing systems or libraries you have to use. This is true in both directions. With JRuby becoming a more and more mature Ruby implementation, Java integration is not anymore just a dream, although it&#8217;s not as tight as in Groovy / Grails.</p>
<p><ins datetime="2009-09-06T15:34:50+00:00">Update:</ins><br />
<a href="http://www.ibm.com/developerworks/java/library/j-grails12168/index.html">Mastering Grails &#8211; Grails in the Enterprise</a><br />
<a href="http://www.brianlegros.com/blog/2008/01/20/proof-of-concept-learning-groovy-grails-jruby-and-rails/">Proof of Concept : Learning Groovy, Grails, JRuby, and Rails</a></p>
<!-- google_ad_section_end --><p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F972&amp;linkname=Frontend%20with%20GWT.%20What%20about%20the%20server%20side%3F" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F972&amp;linkname=Frontend%20with%20GWT.%20What%20about%20the%20server%20side%3F" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F972&amp;linkname=Frontend%20with%20GWT.%20What%20about%20the%20server%20side%3F" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F972&amp;linkname=Frontend%20with%20GWT.%20What%20about%20the%20server%20side%3F" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F972&amp;linkname=Frontend%20with%20GWT.%20What%20about%20the%20server%20side%3F" title="Reddit" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F972&amp;linkname=Frontend%20with%20GWT.%20What%20about%20the%20server%20side%3F" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F972&amp;linkname=Frontend%20with%20GWT.%20What%20about%20the%20server%20side%3F" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F972&amp;linkname=Frontend%20with%20GWT.%20What%20about%20the%20server%20side%3F" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.project-sierra.de/archives/972/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GWT becomes more RESTful in 2.0 and gets PUT and DELETE</title>
		<link>http://blog.project-sierra.de/archives/929</link>
		<comments>http://blog.project-sierra.de/archives/929#comments</comments>
		<pubDate>Sat, 22 Aug 2009 10:12:09 +0000</pubDate>
		<dc:creator>skarabaeus</dc:creator>
				<category><![CDATA[GWT]]></category>

		<guid isPermaLink="false">http://blog.project-sierra.de/?p=929</guid>
		<description><![CDATA[It might have been announced somewhere else already, but I read it first in this forum post:
REST : It&#8217;s maybe time to add Http methods PUT &#038; DELETE 

HI all,
The GWT team also agrees with you. See Issue #3388 (link below) to receive updates once the fix for this has shipped. It is currently planned [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p><p>It might have been announced somewhere else already, but I read it first in this forum post:</p>
<p><a href="http://http://groups.google.com/group/google-web-toolkit/browse_thread/thread/35a85a2196bb0b43?hl=en">REST : It&#8217;s maybe time to add Http methods PUT &#038; DELETE </a></p>
<blockquote><p>
HI all,<br />
The GWT team also agrees with you. See Issue #3388 (link below) to receive updates once the fix for this has shipped. It is currently planned for the GWT 2.0 release and is marked as a high priority fix.</p>
<p><a href="http://code.google.com/p/google-web-toolkit/issues/detail?id=3388">Issue #3388</a></p>
<p>Cheers,<br />
-Sumit Chandel
</p></blockquote>
<p>This is great news!</p>
<!-- google_ad_section_end --><p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F929&amp;linkname=GWT%20becomes%20more%20RESTful%20in%202.0%20and%20gets%20PUT%20and%20DELETE" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F929&amp;linkname=GWT%20becomes%20more%20RESTful%20in%202.0%20and%20gets%20PUT%20and%20DELETE" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F929&amp;linkname=GWT%20becomes%20more%20RESTful%20in%202.0%20and%20gets%20PUT%20and%20DELETE" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F929&amp;linkname=GWT%20becomes%20more%20RESTful%20in%202.0%20and%20gets%20PUT%20and%20DELETE" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F929&amp;linkname=GWT%20becomes%20more%20RESTful%20in%202.0%20and%20gets%20PUT%20and%20DELETE" title="Reddit" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F929&amp;linkname=GWT%20becomes%20more%20RESTful%20in%202.0%20and%20gets%20PUT%20and%20DELETE" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F929&amp;linkname=GWT%20becomes%20more%20RESTful%20in%202.0%20and%20gets%20PUT%20and%20DELETE" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F929&amp;linkname=GWT%20becomes%20more%20RESTful%20in%202.0%20and%20gets%20PUT%20and%20DELETE" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.project-sierra.de/archives/929/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GWT MVP example online</title>
		<link>http://blog.project-sierra.de/archives/907</link>
		<comments>http://blog.project-sierra.de/archives/907#comments</comments>
		<pubDate>Wed, 12 Aug 2009 20:32:17 +0000</pubDate>
		<dc:creator>skarabaeus</dc:creator>
				<category><![CDATA[GWT]]></category>
		<category><![CDATA[Patterns]]></category>

		<guid isPermaLink="false">http://blog.project-sierra.de/?p=907</guid>
		<description><![CDATA[I already wrote about the great GWT Best Practices talk by Ray Ryan on the Google I/O.
Now there&#8217;s sample code for the Model View Presenter pattern online: http://code.google.com/p/gwt-mvp-sample/
]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p><p>I already wrote about the great <a href="http://blog.project-sierra.de/archives/831">GWT Best Practices</a> talk by Ray Ryan on the Google I/O.</p>
<p>Now there&#8217;s sample code for the Model View Presenter pattern online: <a href="http://code.google.com/p/gwt-mvp-sample/">http://code.google.com/p/gwt-mvp-sample/</a></p>
<!-- google_ad_section_end --><p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F907&amp;linkname=GWT%20MVP%20example%20online" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F907&amp;linkname=GWT%20MVP%20example%20online" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F907&amp;linkname=GWT%20MVP%20example%20online" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F907&amp;linkname=GWT%20MVP%20example%20online" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F907&amp;linkname=GWT%20MVP%20example%20online" title="Reddit" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F907&amp;linkname=GWT%20MVP%20example%20online" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F907&amp;linkname=GWT%20MVP%20example%20online" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F907&amp;linkname=GWT%20MVP%20example%20online" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.project-sierra.de/archives/907/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GWT Patterns / Best Practices</title>
		<link>http://blog.project-sierra.de/archives/899</link>
		<comments>http://blog.project-sierra.de/archives/899#comments</comments>
		<pubDate>Wed, 12 Aug 2009 20:22:52 +0000</pubDate>
		<dc:creator>skarabaeus</dc:creator>
				<category><![CDATA[GWT]]></category>
		<category><![CDATA[Patterns]]></category>

		<guid isPermaLink="false">http://blog.project-sierra.de/?p=899</guid>
		<description><![CDATA[I just finished reading two articles about Patterns and Anti-Patterns in the Google Web Toolkit. They&#8217;re not exactly about rocket science but nice summaries. Also some patterns are not specifically GWT patterns rather RIA patterns in general, but I don&#8217;t want to split hairs here&#8230;
Patterns + GWT + Ajax = Usability
Key points

Client-Side validation. In the [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p><p>I just finished reading two articles about Patterns and Anti-Patterns in the Google Web Toolkit. They&#8217;re not exactly about rocket science but nice summaries. Also some patterns are not specifically GWT patterns rather RIA patterns in general, but I don&#8217;t want to split hairs here&#8230;</p>
<p><a href="http://www.ibm.com/developerworks/web/library/wa-aj-patterns/index.html?ca=dgr-twtrPaterns-GWT-Ajax">Patterns + GWT + Ajax = Usability</a></p>
<p>Key points</p>
<ul>
<li>Client-Side validation. In the article called &#8220;prevalidation&#8221;, meaning making an async call to the server via Ajax in order to validate input data</li>
<li>Code Sharing. Since you write your client side code in Java you can share code with the server side to a certain degree. Validation code and data objects are good candidates for code sharing.</li>
<li>Caching. GWT provides several possibilities to cache data on the client side and thus reduce calls to the server. The user has to wait less and your server has less work.</li>
<li>Prefetching. You can try to guess what data the user wants to see next. This can be very beneficial, but you be careful: sometimes the user thinks quite different than the developer</li>
<li>Thread Simulation. Javascript runs in one thread. No chance to spawn a second one. Use the GWT Timer class to simulate threads or GWT&#8217;s deferred commands.</li>
</ul>
<p><a href="http://www.zackgrossbart.com/hackito/antiptrn-gwt/">5 GWT Anti-patterns</a></p>
<p>Key points:</p>
<ul>
<li>To many Ajax calls. Solution: Use <a href="http://en.wikipedia.org/wiki/Data_Transfer_Object">DTO</a>&#8217;s to transfer bigger junks of data in less requests.</li>
<li>Inline Javascript. Meant are not native Javascript methods, but manually added Javascript code as a String to onclick, onmouseover, etc. attributes. The compiler can&#8217;t optimize it, debugging is hard or rather almost impossible. Solution: Use GWT&#8217;s event handlers.</li>
<li>Listeners instead of CSS Pseudo Classes. Solution: Sometimes it&#8217;s more effective and efficient to use CSS Pseudo class instead of GWT Listeners. CSS is easier to change, to deploy and faster because it&#8217;s handled by the browser, not the browsers Javascript engine. But be aware of browser differences, specially if you have to support IE6.</li>
<li>Window.alert: Window.alert and async calls don&#8217;t go well together. Just don&#8217;t use it. Plan some area in your application which displays the error and warnings.</li>
</ul>
<p>The article mentions a fifth anti-pattern: FlexTable. FlexTable is a powerful GWT class to display data which is supposed to be displayed in &#8230; well&#8230; rows and columns. Additionally to this obvious usage it&#8217;s used to layout applications and that is what the above article criticizes. If you look to the comments on that article you&#8217;ll find the typical flame-war CSS-based layout vs. table-based. In my opinion it just depends very much on the use case, therefore I wouldn&#8217;t go so far to call it an anti-pattern. </p>
<!-- google_ad_section_end --><p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F899&amp;linkname=GWT%20Patterns%20%2F%20Best%20Practices" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F899&amp;linkname=GWT%20Patterns%20%2F%20Best%20Practices" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F899&amp;linkname=GWT%20Patterns%20%2F%20Best%20Practices" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F899&amp;linkname=GWT%20Patterns%20%2F%20Best%20Practices" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F899&amp;linkname=GWT%20Patterns%20%2F%20Best%20Practices" title="Reddit" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F899&amp;linkname=GWT%20Patterns%20%2F%20Best%20Practices" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F899&amp;linkname=GWT%20Patterns%20%2F%20Best%20Practices" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F899&amp;linkname=GWT%20Patterns%20%2F%20Best%20Practices" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.project-sierra.de/archives/899/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Crux: component framework for GWT</title>
		<link>http://blog.project-sierra.de/archives/877</link>
		<comments>http://blog.project-sierra.de/archives/877#comments</comments>
		<pubDate>Mon, 03 Aug 2009 13:07:09 +0000</pubDate>
		<dc:creator>skarabaeus</dc:creator>
				<category><![CDATA[GWT]]></category>

		<guid isPermaLink="false">http://blog.project-sierra.de/?p=877</guid>
		<description><![CDATA[Crux allows you to create web user interfaces in a declarative and modularized way, which drastically improves development speed and code maintainability. In other words, it brings you the best of both worlds: the comfort of creating pages with HTML and the elegance of controlling those pages using Java code. 
So &#8230; could we say [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p><blockquote><p><em>Crux</em> allows you to create web user interfaces in a declarative and modularized way, which drastically improves development speed and code maintainability. In other words, it brings you the best of both worlds: the comfort of creating pages with HTML and the elegance of controlling those pages using Java code. </p></blockquote>
<p>So &#8230; could we say that GWT + <a href="http://code.google.com/p/crux-framework/">Crux</a> is <a href="http://java.sun.com/javaee/javaserverfaces/">JSF</a> <a href="http://pgt.de/2008/04/09/session-gwt-jsf-done-right/">done right</a>?</p>
<p>You might want to check out <a href="http://code.google.com/p/google-web-toolkit-incubator/wiki/UiBinder">UiBinder</a> as well, which is part of the GWT Incubator. I wouldn&#8217;t wonder if UiBinder or a similar technology finds its way into GWT 2.0 or later.</p>
<!-- google_ad_section_end --><p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F877&amp;linkname=Crux%3A%20component%20framework%20for%20GWT" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F877&amp;linkname=Crux%3A%20component%20framework%20for%20GWT" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F877&amp;linkname=Crux%3A%20component%20framework%20for%20GWT" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F877&amp;linkname=Crux%3A%20component%20framework%20for%20GWT" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F877&amp;linkname=Crux%3A%20component%20framework%20for%20GWT" title="Reddit" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F877&amp;linkname=Crux%3A%20component%20framework%20for%20GWT" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F877&amp;linkname=Crux%3A%20component%20framework%20for%20GWT" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F877&amp;linkname=Crux%3A%20component%20framework%20for%20GWT" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.project-sierra.de/archives/877/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drag and Drop between Web Browser and Desktop</title>
		<link>http://blog.project-sierra.de/archives/872</link>
		<comments>http://blog.project-sierra.de/archives/872#comments</comments>
		<pubDate>Tue, 28 Jul 2009 19:27:58 +0000</pubDate>
		<dc:creator>skarabaeus</dc:creator>
				<category><![CDATA[GWT]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.project-sierra.de/?p=872</guid>
		<description><![CDATA[For some time already Drag &#038; Drop within the browser is a pretty common feature for web applications. The next step would be Drag &#038; Drop interaction between your desktop and the web application &#8230; without using a plugin (Adobe Air, &#8230;).
Swell, a Javascript library, seems to be promising: Wouldn’t it be Swell to be [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p><p>For some time already Drag &#038; Drop within the browser is a pretty common feature for web applications. The next step would be Drag &#038; Drop interaction between your desktop and the web application &#8230; without using a plugin (Adobe Air, &#8230;).</p>
<p>Swell, a Javascript library, seems to be promising: <a href="http://ajaxian.com/archives/wouldnt-it-be-swell-to-be-able-to-drag-and-drop-between-web-and-desktop">Wouldn’t it be Swell to be able to drag and drop between Web and desktop</a><br />
Also there is a demo on their web page: <a href="http://blog.justswell.org/drag-and-drop-files-from-your-desktop-to-your-browser-using-javascript/">Drag and drop files from your desktop to your browser</a>. They say &#8220;<em>two browsers are playing well with the demo (Safari 4, Chrome 2+)  while others degrades gracefully.</em>&#8221;</p>
<p>Now, even cooler would be such support in the Google Web Toolkit, but it seems a common approach there is to utilize Google Gears, which again forces the user to install a plugin (except in Chrome, where Gears is an integrated component). Read more about it <a href="http://code.google.com/p/gwt-google-apis/issues/detail?id=282">here</a> and <a href="http://gears.googlecode.com/svn/trunk/gears/sdk/api_desktop.html">here</a>.</p>
<!-- google_ad_section_end --><p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F872&amp;linkname=Drag%20and%20Drop%20between%20Web%20Browser%20and%20Desktop" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F872&amp;linkname=Drag%20and%20Drop%20between%20Web%20Browser%20and%20Desktop" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F872&amp;linkname=Drag%20and%20Drop%20between%20Web%20Browser%20and%20Desktop" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F872&amp;linkname=Drag%20and%20Drop%20between%20Web%20Browser%20and%20Desktop" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F872&amp;linkname=Drag%20and%20Drop%20between%20Web%20Browser%20and%20Desktop" title="Reddit" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F872&amp;linkname=Drag%20and%20Drop%20between%20Web%20Browser%20and%20Desktop" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F872&amp;linkname=Drag%20and%20Drop%20between%20Web%20Browser%20and%20Desktop" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F872&amp;linkname=Drag%20and%20Drop%20between%20Web%20Browser%20and%20Desktop" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.project-sierra.de/archives/872/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GWT Best Practices</title>
		<link>http://blog.project-sierra.de/archives/831</link>
		<comments>http://blog.project-sierra.de/archives/831#comments</comments>
		<pubDate>Sat, 11 Jul 2009 14:24:09 +0000</pubDate>
		<dc:creator>skarabaeus</dc:creator>
				<category><![CDATA[GWT]]></category>

		<guid isPermaLink="false">http://blog.project-sierra.de/?p=831</guid>
		<description><![CDATA[Google Web Toolkit Architecture: Best Practices for Architecting your GWT App
Langsam aber sicher kämpfe ich mich durch die GWT Session Videos von der Google I/O.
Das Best Practice Video ist mit Sicherheit eines, das man sich auch mehrmals anschauen kann, bzw. sogar muss.
Grundlage für die Best Practices sind die Erfahrungen, die das Team um Ray Ryan [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p><p><a href="http://code.google.com/events/io/sessions/GoogleWebToolkitBestPractices.html">Google Web Toolkit Architecture: Best Practices for Architecting your GWT App</a></p>
<p>Langsam aber sicher kämpfe ich mich durch die <a href="http://google-code-updates.blogspot.com/2009/06/google-web-toolkit-at-google-io.html">GWT Session Videos von der Google I/O</a>.</p>
<p>Das Best Practice Video ist mit Sicherheit eines, das man sich auch mehrmals anschauen kann, bzw. sogar muss.<br />
Grundlage für die Best Practices sind die Erfahrungen, die das Team um Ray Ryan während der Neuentwicklung von Googles Adwords UI gesammelt hat.</p>
<p>Kernpunkte sind:</p>
<ol>
<li>Man sollte sich frühzeitig darum kümmern die Browser History korrekt zu implementieren.</li>
<li>Verwendung eines zentralen Event Busses</li>
<li>Dependency Injection (DI) mit Google Juice oder Gin + Model View Presenter (nicht Model View Controller)</li>
</ol>
<p>Des Weiteren:</p>
<ul>
<li>Nur soviel Daten laden wie gerade benötigt werden. Der Rest kann jederzeit asynchron nachgeladen werden.</li>
<li>Für GWT UI Code ist es besser konkrete Implementierungen anstatt von Interfaces zu verwenden: z.B. ArrayList anstatt List. Das steigert die Performance.</li>
<li>Command Pattern (Cache, Failure Handling, Undo / Redo)1</li>
</ul>
<p>Wer das ganze mit etwas Zusammenhang haben möchte sollte sich das Video anschauen oder die <a href="http://dl.google.com/io/2009/pres/Th_0200_GoogleWebToolkitArchitecture-BestPracticesForArchitectingYourGWTApp.pdf">Präsentationsfolien herunterladen</a>.</p>
<!-- google_ad_section_end --><p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F831&amp;linkname=GWT%20Best%20Practices" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F831&amp;linkname=GWT%20Best%20Practices" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F831&amp;linkname=GWT%20Best%20Practices" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F831&amp;linkname=GWT%20Best%20Practices" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F831&amp;linkname=GWT%20Best%20Practices" title="Reddit" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F831&amp;linkname=GWT%20Best%20Practices" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F831&amp;linkname=GWT%20Best%20Practices" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F831&amp;linkname=GWT%20Best%20Practices" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.project-sierra.de/archives/831/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GWT 2.0 Features</title>
		<link>http://blog.project-sierra.de/archives/811</link>
		<comments>http://blog.project-sierra.de/archives/811#comments</comments>
		<pubDate>Sun, 28 Jun 2009 17:58:58 +0000</pubDate>
		<dc:creator>skarabaeus</dc:creator>
				<category><![CDATA[GWT]]></category>

		<guid isPermaLink="false">http://blog.project-sierra.de/?p=811</guid>
		<description><![CDATA[Kurze Zusammenfassung dieses Talks: GWT Can Do What?!?! A Preview of Google Web Toolkit 2.0
OOPHM (Out Of Process Hosted Mode)

Supports multiple Browsers. Currently just one browser per operating is supported: Windows: IE, OS X: Safari, Linux: ancient Mozilla version
Communicates over network with your hosted mode instance: Great if you&#8217;re working on Mac OS X but [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p><p>Kurze Zusammenfassung dieses Talks: <a href="http://code.google.com/intl/de-DE/events/io/sessions/GwtPreviewGoogleWebToolkit2.html">GWT Can Do What?!?! A Preview of Google Web Toolkit 2.0</a></p>
<p><strong>OOPHM (Out Of Process Hosted Mode)</strong></p>
<ul>
<li>Supports multiple Browsers. Currently just one browser per operating is supported: Windows: IE, OS X: Safari, Linux: ancient Mozilla version</li>
<li>Communicates over network with your hosted mode instance: Great if you&#8217;re working on Mac OS X but want to test in IE</li>
<li>Included in GWT 2.0 <del datetime="2009-06-28T20:03:56+00:00">available as Plugin for 1.6</del> <ins datetime="2009-06-28T20:03:56+00:00"><a href="http://code.google.com/p/google-web-toolkit/wiki/UsingOOPHM">Available in SVN trunk</a></ins></li>
</ul>
<p><strong>Compiling Performance</strong></p>
<ul>
<li>Prefer hosted mode over compiling code, because compiling is slow</li>
<li>In 1.6: compiler option -localworkers X, compiles X permutations at a time</li>
<li>In 2.0: -draftcompile: exclude certain optimizations, just get a compiled version. Great for development, not designed for deployment</li>
<li>Restrict number of permutations: e.g. just compile for Firefox or Firefox and IE</li>
</ul>
<p><strong>Size of Scripts</strong></p>
<ul>
<li>Break script blocks in multiple script blocks</li>
<li>Asynchronously fetch code when needed: GWT.runAsynch() </li>
<li>runAsynch creates split point in the dependency graph</li>
</ul>
<p><strong>Client Bundle</strong></p>
<ul>
<li>GWT 1.4 introduced ImageBundle</li>
<li>GWT 2.0 will extend this for many more data types: TextResouce (e.g. XML or JSON &gt; great for configuration), ExternalTextResource, DataResource (PDFs, MP3s, &#8230;), CSSResource</li>
<li>CSSResource includes a ton of cool features like: CSS Parsre, CSS Constants (@def), conditionals (@if, @elif). </li>
<li>CssResource already available via <a href="http://code.google.com/p/google-web-toolkit-incubator/wiki/CssResource">Incubator</a>!</li>
</ul>
<p><strong>Layouts</strong></p>
<ul>
<li>&#8220;Have cold sweats when considering measuring everyting&#8221; &gt; resizing by Javascript kills the performance of your app.</li>
<li>Dealing with CSS attributes like height:100% is an endless pain</li>
<li>Therefore GWT 2.0 will come up with updated Layout components like an updated Version of the Dockpanel (check out the Video to see it in action)</li>
<li>These updated Layout components don&#8217;t run any Javascript code, instead they use CSS constraints</li>
</ul>
<p>After the talk somebody asked when the GA release of GWT 2.0 will be. Bruce Johnson said something like &#8220;Q3 we will start thinking about when we could place the GA&#8221;. Also he promised it will be definitely less then a year. So realistically it&#8217;s probably Q4 2009 or Q1 2010.</p>
<!-- google_ad_section_end --><p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F811&amp;linkname=GWT%202.0%20Features" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F811&amp;linkname=GWT%202.0%20Features" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F811&amp;linkname=GWT%202.0%20Features" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F811&amp;linkname=GWT%202.0%20Features" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F811&amp;linkname=GWT%202.0%20Features" title="Reddit" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F811&amp;linkname=GWT%202.0%20Features" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F811&amp;linkname=GWT%202.0%20Features" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F811&amp;linkname=GWT%202.0%20Features" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.project-sierra.de/archives/811/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google I/O und LA Ruby: Material für verregnete Wochenenden</title>
		<link>http://blog.project-sierra.de/archives/809</link>
		<comments>http://blog.project-sierra.de/archives/809#comments</comments>
		<pubDate>Sun, 28 Jun 2009 15:56:53 +0000</pubDate>
		<dc:creator>skarabaeus</dc:creator>
				<category><![CDATA[GWT]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[RubyOnRails]]></category>

		<guid isPermaLink="false">http://blog.project-sierra.de/?p=809</guid>
		<description><![CDATA[Google Web Toolkit @ Google I/O
14 Videos from LA Ruby 2009: Some Great Weekend Watching
]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p><p><a href="http://http://www.rubyinside.com/la-ruby-2009-videos-1830.html">Google Web Toolkit @ Google I/O</a><br />
<a href="http://www.rubyinside.com/la-ruby-2009-videos-1830.html">14 Videos from LA Ruby 2009: Some Great Weekend Watching</a></p>
<!-- google_ad_section_end --><p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F809&amp;linkname=Google%20I%2FO%20und%20LA%20Ruby%3A%20Material%20f%C3%BCr%20verregnete%20Wochenenden" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F809&amp;linkname=Google%20I%2FO%20und%20LA%20Ruby%3A%20Material%20f%C3%BCr%20verregnete%20Wochenenden" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F809&amp;linkname=Google%20I%2FO%20und%20LA%20Ruby%3A%20Material%20f%C3%BCr%20verregnete%20Wochenenden" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F809&amp;linkname=Google%20I%2FO%20und%20LA%20Ruby%3A%20Material%20f%C3%BCr%20verregnete%20Wochenenden" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F809&amp;linkname=Google%20I%2FO%20und%20LA%20Ruby%3A%20Material%20f%C3%BCr%20verregnete%20Wochenenden" title="Reddit" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F809&amp;linkname=Google%20I%2FO%20und%20LA%20Ruby%3A%20Material%20f%C3%BCr%20verregnete%20Wochenenden" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F809&amp;linkname=Google%20I%2FO%20und%20LA%20Ruby%3A%20Material%20f%C3%BCr%20verregnete%20Wochenenden" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F809&amp;linkname=Google%20I%2FO%20und%20LA%20Ruby%3A%20Material%20f%C3%BCr%20verregnete%20Wochenenden" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.project-sierra.de/archives/809/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GWT libraries</title>
		<link>http://blog.project-sierra.de/archives/802</link>
		<comments>http://blog.project-sierra.de/archives/802#comments</comments>
		<pubDate>Sun, 28 Jun 2009 15:51:30 +0000</pubDate>
		<dc:creator>skarabaeus</dc:creator>
				<category><![CDATA[GWT]]></category>

		<guid isPermaLink="false">http://blog.project-sierra.de/?p=802</guid>
		<description><![CDATA[Ich beschäftige mich in letzter Zeit etwas intensiver mit GWT. GWT selbst kommt mit einer Vielzahl brauchbarer Widgets. Diese Widgets sind vom GWT Team getestet und optimiert. Beginnt man ein GWT Projekt, wird man jedoch relativ schnell feststellen, das die Grund-Widgets relativ schnell ausgereizt sind bzw. man sich eine etwas erweiterte Funktionalität wünschen würde. Man [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p><p>Ich beschäftige mich in letzter Zeit etwas intensiver mit <a href="http://code.google.com/intl/de-DE/webtoolkit/">GWT</a>. GWT selbst kommt mit einer Vielzahl brauchbarer <a href="http://gwt.google.com/samples/Showcase/Showcase.html">Widgets</a>. Diese Widgets sind vom GWT Team getestet und optimiert. Beginnt man ein GWT Projekt, wird man jedoch relativ schnell feststellen, das die Grund-Widgets relativ schnell ausgereizt sind bzw. man sich eine etwas erweiterte Funktionalität wünschen würde. Man steht vor der Entscheidung die Widgets von Hand zu erweitern oder eine der vielen Bibliotheken zu verwenden. Grundsätzlich gilt: <a href="http://www.codinghorror.com/blog/archives/001145.html">Don&#8217;t Reinvent The Wheel, Unless You Plan on Learning More About Wheels</a></p>
<p>Welche Bibliotheken gibt es also? (siehe <a href="http://stackoverflow.com/questions/867451/best-gwt-widget-library">Stackoverflow.com</a>)</p>
<blockquote>
<ul>
<li><a rel="nofollow" href="http://extjs.com/products/gxt/">EXT-GWT</a></li>
<li><a rel="nofollow" href="http://gwt.components.googlepages.com/">GWT Components Library</a></li>
<li><a rel="nofollow" href="http://code.google.com/p/gwt-ext/">GWT-EXT</a></li>
<li><a rel="nofollow" href="http://gwt-widget.sourceforge.net/">GWT Widget Library</a></li>
<li><a rel="nofollow" href="http://gwtiger.org/">GWTiger</a></li>
<li><a rel="nofollow" href="http://code.google.com/p/rocket-gwt/">Rocket GWT</a></li>
<li><a rel="nofollow" href="http://code.google.com/p/tatami/">Dojo</a></li>
<li><a rel="nofollow" href="http://code.google.com/p/smartgwt/">SmartGWT</a></li>
</ul>
</blockquote>
<p>Nun gibt es zwei grundsätzlich unterschiedliche Arten von Bibliotheken</p>
<ol>
<li>Sogenannte Wrapper, z.B. GWT-Ext und SmartGWT</li>
<li>&#8220;Echte&#8221; GWT Bibliotheken</li>
</ol>
<p>Meiner Meinung nach schließen sich Wrapper Bibliotheken von alleine aus. GWT kompiliert Java Code und erzeugt dabei für einzelne Browser optimiertes HTML und Javascript. Neben vollem Java IDE-Support sind das die Hauptvorteile von GWT. Da die von den Wrapper-Bibliotheken gekapselten Javascript-Bibliotheken bereits in Javascript vorliegen, kann der Compiler nichts mehr optimieren. Wenn GWTs Hauptvorteile also wegfallen, warum sollte ich aufwendig ein neues Framework lernen? Nur um anstatt in Javascript in Java zu programmieren? Für die meisten Projekte lautet die Antwort nein. Sind einige der Features einer Javascript Bibliothek derart wichtig für ein Projekt, dass man nicht darauf verzichten kann, ist man meiner Meinung besser beraten die JS Bibliothek direkt zu verwenden, ohne GWT zwischen zuschalten.</p>
<p>Bleibt noch die zweite Möglichkeit, die &#8220;echten&#8221; GWT Bibliotheken. Diese passen in soweit besser ins GWT Modell, als das sie auf die gleiche Art und Weise funktionieren und somit im optimalen Falle die <a href="http://code.google.com/intl/de-DE/webtoolkit/overview.html">Gründe warum man GWT verwenden möchte</a> nicht ad absurdum führen: Javascript-Optimierung auf Performance und Browser-Kompatibilität.<br />
Die umfangreichste GWT Bibliothek ist momentan wohl <a href="http://extjs.com/products/gxt/">Ext GWT</a> (auch GXT genannt), welche nicht zu verwechseln ist mit GWT Ext auch wenn die Namen zum vertauschen ähnlich sind:</p>
<blockquote><p>
Ext-GWT (formerly MyGWT) is a “pure” Java/GWT port of the well known Ext-JS JavaScript library, not to be mistaken for gwt-ext, which is a Java/GWT wrapper around Ext-JS… Still following?</p>
<p>In short, gwt-ext requires Ext-JS, while Ext-GWT doesn’t. Ext-GWT is from the same company that makes Ext-JS (appropriatley called Ext), while gwt-ext is an independant work. Also, since version 2.1, Ext-JS removed LGPL from its licensing options, which effectively prevents software like gwt-ext from using it, so it’s stuck with v 2.0.x.
</p></blockquote>
<p> Quelle: <a href="http://blog.gerardin.info/archives/40">blog.gerardin.info</a><br />
Ich habe eine Weile mit Ext-GWT gespielt, schnell fallen einem aber Nachteile auf: </p>
<ul>
<li>Einige Widgets rendern nicht korrekt im Hosted Mode Browser (fairer weise muss ich an dieser Stelle zugeben, dass ich mit Ext-GWT 2.0 RC-1 getestet habe, Version 1.2.4 mag sich besser verhalten). Das ist insbesondere deshalb nervig, da der GWT Compile-Vorgang recht langsam ist.</li>
<li>Das First-Page-Load Volumen steigt drastisch, nicht weiter verwunderlich, aber eine Tatsache, die man im Auge behalten sollte: Braucht man nur ein einziges Widget der Bibliothek wird viel Javascript geladen, das nie ausgeführt wird.</li>
<li>Nicht alle Widgets entsprechen den Performance-Ansprüchen, die man an eine RIA stellt. Die Benutzerfreundlichkeit soll verbessert und nicht verschlechtert werden!</li>
</ul>
<p>Weitere Vor- und Nachteile von Ext-GWT kann man hier nachlesen: <a href="http://blog.gerardin.info/archives/40">Why Ext-GWT MVC is broken</a>, <a href="http://lifeandcode.net/2009/04/gwt-16-and-gxt-20-m1-upgrade-experience/">GWT 1.6 and GXT 2.0-M1 upgrade experience</a>, <a href="http://stackoverflow.com/questions/1000353/gwt-libraries">gwt libraries (die erste Antwort ist äußerst hilfreich!)</a>, <a href="http://stackoverflow.com/questions/867451/best-gwt-widget-library">Best GWT widget library</a>.</p>
<p>Zwei Bibliotheken gibt es dann doch, die den Ansprüchen genügen: <a href="http://code.google.com/p/google-web-toolkit-incubator/">Incubator</a> und <a href="http://code.google.com/p/gwt-mosaic/">Mosaic</a>. Beide bei weitem nicht so umfangreich wie Ext-GWT, dafür aber auch viel einfacher und gefahrloser in bestehende Projekte zu integrieren.</p>
<p><strong>Zusammenfassung</strong></p>
<ul>
<li>Wrapper: Ist man auf eine Großzahl der Features einer der großen Javascript Bibliotheken wie Ext JS, SmartClient oder Dojo angewiesen, sollte man sie besser direkt verwenden, als GWT zwischen zu schalten. GWT verkompliziert an dieser Stelle Integration, Entwicklung, Upgrade, Deployment, &#8230;.</li>
<li>Echte GWT Bibliotheken: Ext GWT beherbergt viele gute Widgets, man erbt aber auch viele Probleme: Upgrade auf neuere Version, schwer erweiterbar, festgelegte Templates. Für ein internes Projekt, das selten aktualisiert wird mag das Ok sein, für andere Fälle nicht. Mosaic und Incubator erlauben die maßvolle Erweiterung von GWT und bringen wenige oder keine Probleme mit sich</li>
</ul>
<p>Ich hoffe das geschriebene und die Links helfen weiter.</p>
<!-- google_ad_section_end --><p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F802&amp;linkname=GWT%20libraries" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F802&amp;linkname=GWT%20libraries" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F802&amp;linkname=GWT%20libraries" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F802&amp;linkname=GWT%20libraries" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F802&amp;linkname=GWT%20libraries" title="Reddit" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F802&amp;linkname=GWT%20libraries" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F802&amp;linkname=GWT%20libraries" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F802&amp;linkname=GWT%20libraries" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.project-sierra.de/archives/802/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GWT UML</title>
		<link>http://blog.project-sierra.de/archives/796</link>
		<comments>http://blog.project-sierra.de/archives/796#comments</comments>
		<pubDate>Tue, 23 Jun 2009 10:58:05 +0000</pubDate>
		<dc:creator>skarabaeus</dc:creator>
				<category><![CDATA[GWT]]></category>
		<category><![CDATA[UML]]></category>

		<guid isPermaLink="false">http://blog.project-sierra.de/?p=796</guid>
		<description><![CDATA[Einfacher, schneller UML Editor. Implementiert mit GWT:
GWT UML
Wichtig ist der Hinweis ganz unten:
This app is NOT meant to be run under internet explorer !!! 
]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p><p>Einfacher, schneller UML Editor. Implementiert mit GWT:</p>
<p><a href="http://code.google.com/p/gwtuml/">GWT UML</a></p>
<p>Wichtig ist der Hinweis ganz unten:</p>
<blockquote><p>This app is NOT meant to be run under internet explorer !!! </p></blockquote>
<!-- google_ad_section_end --><p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F796&amp;linkname=GWT%20UML" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F796&amp;linkname=GWT%20UML" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F796&amp;linkname=GWT%20UML" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F796&amp;linkname=GWT%20UML" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F796&amp;linkname=GWT%20UML" title="Reddit" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F796&amp;linkname=GWT%20UML" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F796&amp;linkname=GWT%20UML" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.project-sierra.de%2Farchives%2F796&amp;linkname=GWT%20UML" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.project-sierra.de/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.project-sierra.de/archives/796/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
