Posted by Chris Ramsdale - Monday, October 11, 2010 at 6:50:00 PM
Building on the three previous milestones, we're happy to announce the first release candidate (RC1) of GWT 2.1. While we're still focused on the overall theme of making it easier to build cloud portable business apps via some help from our friends at VMware and Spring, there are more than a few aspects that make this milestone a RC.
First we've rounded out the list of components and features that will ship with GWT 2.1. One of these components is a new Editor framework that allows you to bind your DTOs to a customizable UI which handles all of necessary grunt work of validating and syncing change sets. Another is the availability of theSafeHTML component and its integration within the cell-based widgets. After all, we've optimized these new widgets by injecting HTML, we better do it in a secure manner.
Along with the new components and features, we've solidified the Activities/Places, RequestFactory, Editor framework, and Cell-based widget APIs. So, if you're looking to start a project with GWT 2.1, you can feel confident that your team won't have to refactor code because we've switched out interfaces between now and the final release.
Also, if you're looking to get started with GWT 2.1 we have an initial draft of the new Developer Guides. These can be found at the links below (the Editor framework Developer Guide is coming soon).
As with previous milestones, there will be an associated Spring Roo RC1 and SpringSource Tool Suite RC1, that will be available in the next few days. Keep your eye on the SpringSource blog, as Christian and Ben are active contributors.
GWT 2.1 RC is available on our Google Code download site and as version 2.1-SNAPSHOT in the Google Maven Snapshot Repository. We’d love to hear your feedback and thoughts on this release, and our GWT Developer Forum would be the best place to post this information.
Data Presentation Widgets
Data Presentation Widgets (Cell Widgets) allow developers to to create highly efficient views on top of large data sets. These widgets have two unique design strengths. One, they're able to render subsets of a dataset in the same way they would if they had fetched the entire dataset. For your end-users this means the initial load of a view is fast, even if that view is tied to millions of records on the backend. Secondly, cell widgets use a 'flyweight' design. Rather than being a container of other widgets, which can tend to be heavy, they build up chunks of HTML that is injected into the DOM. This not only speeds up initialization, but also reduces the event handling overhead that can slow down user experience when there are hundreds of widgets in a view.
MVP Framework (Activities and Places)
The MVP framework is an application framework that supports development of large scale GWT applications with the Model - View - Presenter pattern. The MVP framework provides a client-side EventBus, manages Activities, and synchronizes Places with browser history.
To make developing apps of this style easier, Spring Roo, though not required, can generate and maintain the boilerplate code associated with connecting your app's components with GWT's MVP Framework.
RequestFactory is an alternative to GWT-RPC for creating data-oriented services. RequestFactory and its related interfaces (RequestContext and EntityProxy) make it easy to build data-oriented (CRUD) apps with an ORM-like interface on the client. It is designed to be used with an ORM layer like JDO or JPA on the server, although this is not required.
Server-side Speed Traces
We've mentioned before that Speed Tracer is a tool that helps you identify and fix performance problems in web applications. Until now the problems it can help you fix have be limited to client-side code.
With Speed Tracer, you can now view sever-side timing data for apps running on Google App Engine and SpringSource's TC Server Developer Edition. With this integration, you'll be able to view metrics for database calls, memcache hits, resources fetches, as well as other server-side service calls. The new metrics views are integrated into the existing Speed Tracer UI, all you need to do is navigate to the Network (resources) and you'll start see your server-side traces.
Logging of client-side code in GWT applications is new. Logging helps you understand how the application executes and make it easier to troubleshoot issues encountered by developers and users. In GWT, you can log client-side code directly to handlers on the client side, or you can use remote logging to log client-side code to handlers on the server side.
The logging framework emulates java.util.logging, so it uses the same syntax and has the same behavior as server side logging code. This allows you to share logging code between the client and server side code.
SafeHtml provides a library that, when used with the coding guidelines, supports the development of GWT applications that are free from a large class of XSS vulnerabilities. It provides this benefit while minimizing overhead in runtime and development effort. This class of potential XSS vulnerabilities in GWT apps arises from the use of methods that cause the browser to evaluate their argument as HTML, for example, setInnerHTML and setHTML, as well as the constructors of HTML-containing widgets such as HTML.