
<?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>pgt &#187; guice</title>
	<atom:link href="http://pgt.de/tag/guice/feed/" rel="self" type="application/rss+xml" />
	<link>http://pgt.de</link>
	<description>t3chnology scouting GmbH</description>
	<lastBuildDate>Thu, 08 Dec 2011 11:07:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Best Practices For Architecting Your GWT App</title>
		<link>http://pgt.de/2009/09/18/best-practices-for-architecting-your-gwt-app/</link>
		<comments>http://pgt.de/2009/09/18/best-practices-for-architecting-your-gwt-app/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 08:24:10 +0000</pubDate>
		<dc:creator>P.G.Taboada</dc:creator>
				<category><![CDATA[GWT]]></category>
		<category><![CDATA[gin]]></category>
		<category><![CDATA[guice]]></category>
		<category><![CDATA[gwt]]></category>
		<category><![CDATA[mvp-pattern]]></category>
		<category><![CDATA[spring]]></category>

		<guid isPermaLink="false">http://pgt.de/?p=600</guid>
		<description><![CDATA[<p>Just in case you haven&#8217;t seen it yet: there is very interesting talk from Ray Ryan available online:</p> <p>Google Web Toolkit Architecture: Best Practices for Architecting your GWT App</p> <p>A common question people ask is how to architect a GWT app. Ray Ryan discusses real-world learnings and patterns from the Google AdWords team and [...]]]></description>
			<content:encoded><![CDATA[<p>Just in case you haven&#8217;t seen it yet: there is very interesting talk from Ray Ryan available online:</p>
<blockquote><p><a href="http://code.google.com/intl/de-DE/events/io/sessions/GoogleWebToolkitBestPractices.html" target="_blank"><strong>Google Web Toolkit Architecture: Best Practices for Architecting your GWT App</strong></a></p>
<p>A common question people ask is how to architect a GWT app. Ray Ryan discusses real-world learnings and patterns from the Google AdWords team and elsewhere which you can use in your apps.</p></blockquote>
<p>While dependency injection on the client side in general is nothing new, having it on a GWT application (I mean on the client) is something a little harder to setup. Since we don&#8217;t have reflection and dynamic proxies&#8230; But GWT provides an alternative called deferred binding, and there is a project called <a href="http://code.google.com/p/google-gin/" target="_blank">Gin</a> providing the <a href="http://code.google.com/p/google-guice/" target="_blank">Guice DI</a> approach for GWT apps.</p>
<p>There are some other projects like gwt-dispatch and gwt-presenter that where created inspired by Ray Ryans talk.</p>
<p>So if you are doing or planning GWT development, have a look at the video and the following projects:</p>
<ul>
<li><a href="http://code.google.com/p/gwt-dispatch/" target="_blank"><strong>gwt-dispatch</strong></a>: Inspired by Ray Ryan&#8217;s Best Practices For Architecting Your GWT App session at Google I/O 2009, this is an implementation of the &#8216;command pattern&#8217; discussed at the beginning of the video.</li>
<li><a href="http://code.google.com/p/gwt-presenter/" target="_blank"><strong>gwt-presenter</strong></a>: Inspired by Ray Ryan&#8217;s Best Practices For Architecting Your GWT App session at Google I/O 2009, this is an implementation of the &#8216;Presenter&#8217; part of the Model-View-Presenter (MVP) design pattern discussed in the video.</li>
<li><a href="http://code.google.com/p/google-gin/" target="_blank"><strong>google-gin</strong></a>: GIN (GWT INjection) brings automatic dependency injection to Google Web Toolkit client-side code. GIN is built on top of Guice and uses (a subset of) Guice&#8217;s binding language. By using GWT&#8217;s compile-time Generator support, GIN has little-to-no runtime overhead compared to manual DI.</li>
</ul>
<p>If you are looking for an easy approach to use Spring in the backend with the gwt-dispatch project have a look at this posting:</p>
<ul>
<li><a href="http://pgt.de/2009/09/16/use-spring-with-gwt-dispatch/"><strong>Use Spring with GWT dispatch </strong></a></li>
</ul>
<p>If you are looking for a simple and concise approach to use autowire your Gwt-RPC servlets with components from the Spring application context, have a look at this posting:</p>
<ul>
<li><a href="http://pgt.de/2009/07/17/non-invasive-gwt-and-spring-integration-reloaded/" target="_blank"><strong>Non invasive GWT and Spring integration (reloaded)</strong></a></li>
</ul>
<p><strong>[update]</strong></p>
<ul>
<li><a href="http://code.google.com/p/mvp4g/" target="_blank"><strong>mvp4g</strong></a>: all-in-one approach providing annotation based Event Bus, Dependency Injection, Model View Presenter, Place Service</li>
</ul>
<p><strong>[/update]</strong></p>
<p><div style="padding: 50px 10px 50px 10px; text-align:center;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-8682101792434953";
/* blogposts */
google_ad_slot = "3634251742";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div></p>
]]></content:encoded>
			<wfw:commentRss>http://pgt.de/2009/09/18/best-practices-for-architecting-your-gwt-app/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

