title: What's your recommendation for architecting GWT applications? MVC, MVP or custom messaging solution?
body: <p>I just started a new GWT project for a client and I'm interested in hearing people's experience with various GWT MVC architectures. On a recent project, I used both <a href="http://raibledesigns.com/rd/entry/gxt_s_mvc_framework" rel="noreferrer">GXT MVC</a>, as well as a custom messaging solution (based on <a href="http://doc.appcelerator.org/mq:start" rel="noreferrer">Appcelerator's MQ</a>). GXT MVC worked OK, but it seemed like overkill for GWT and was hard to make work with browser history. I've heard of <a href="http://puremvc.org/" rel="noreferrer">PureMVC</a> and <a href="http://gwtiger.org/" rel="noreferrer">GWTiger</a>, but never used them. Our custom MQ solution worked pretty well, but made it difficult to test components with JUnit.</p>
  
  <p>In addition, I've heard that Google Wave (a GWT application) is written using a Model-View-Presenter pattern. A <a href="http://code.google.com/p/gwt-mvp-sample/" rel="noreferrer">sample MVP application</a> was recently published, but looking at the code, it doesn't seem that intuitive.</p>
  
  <p>If you were building a new GWT application, which architecture would you use? What are the pros and cons of your choice?</p>
  
  <p>Thanks,</p>
  
  <p>Matt</p>