Bindings, Platforms, and Innovation
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
Tracking change and innovation in the enterprise software development community
Posted by R.J. Lorimer on Feb 22, 2008 12:21 PM
On February 6th GWT-Ext 2.0 was released. GWT-Ext is a widget library for the Google Web Toolkit (GWT) that provides a number of controls such as: trees with drag and drop, page-able/sortable grids, validating forms, and tab panels. The controls available in GWT-Ext come from the ExtJS Javascript widget library. The 2.0 release of GWT-Ext ties together GWT 1.4 and the recently released ExtJS 2.0. (For more information on ExtJS 2.0, see the InfoQ interview with ExtJS creator Jack Slocum).First, I'd like to congratulate Jack and the Ext team for the fantastic work they've done with Ext 2.0. A lot of the improvements in GWT-Ext 2.0 can be directly attributed to the enhancements and improved architecture of Ext 2.0.
The biggest architectural improvements in this version are a unified Component model and improved Layout management. All widgets now follow a consistent hierarchy and are subclasses of a base Component class which manages the creation, rendering and destruction lifecycle operations. This version has an architecture that separates the responsibility of Containers, which are only aware of child Components, and the layout of the Components within the Container which is handled by an assigned LayoutManager. Creating complex layouts is now a breeze.
GWT-Ext 2.0 also has a bean friendly API which makes it easier to use and also helps integrate with UI builders like GWT Designer. As for cool new features, there are a lot of them like support for grouping in Grid's, Accordion, ProgressBar, Drag & Drop support between Grid and Tree, and others. One of the other highlights of this release is a new an improved Showcase demo (http://www.gwt-ext.com/demo) that has a lot of illustrative examples along with the associated source to run each sample individually. I am a big believer in learn by example, and I hope that the effort put into building this Showcase demo helps the users.
Another point worth mentioning is the GWT-Ext 2.0 license. From what I have learnt, according to FSF, LGPL in the context of GWT libraries effectively translates to GPL unless clarified by the library author. I have added clarification to the GWT-Ext license page (http://gwt-ext.com/license/) so that most users can use GWT-Ext in commercial projects without violating the license.
There is a significant performance improvement in this version and most of the credit for this goes to the performance improvements in Ext 2.0. You can learn more about the changes they made from their site, but I'll go over some of the significant ones here in the context of GWT-Ext.
- All components / widgets now support lazy rendering which means that they can be instantiated and managed without any overhead and their rendering is deferred to the point at which they are required to be attached to the DOM. This change alone can result in significant performance improvements, especially for larger applications.
- All Components follow a standard lifecycle from creation to destruction which is managed by the framework allowing for proper memory management. Forms and Grids (tables) in particular improved a lot and users can expect much better performance with these widgets.
- With GWT-Ext 2.0, separate "config" classes for each widget are no longer required. Users simply call Javabean setters on the Component itself to set a given property of Component attribute. This not only makes the API a lot cleaner, but also helps reduce the total lines of code.
- Finally, seeing is believing. Several users have already commented on how their application is a lot more responsive and spiffy after upgrading to GWT-Ext 2.0. You can also get a sense of the improved performance by running the samples in the GWT-Ext 2.0 Showcase demo.
The layout management API's have changed, but most users have welcomed this change as the new API is intuitive and allows you to put together complex layouts quickly and easily. Separate config classes are no longer required for configuring a Component - users simply need to call the Javabean setters on the Component itself. Making this change during the upgrade is mostly a matter of a few hours of grunt work and not really something that a great deal of though needs to go into. Again, users have welcomed this change. Infact the use of Javabean accessors instead of separate config classes was influenced by the user feedback from GWT-Ext 0.9.
The Java compiler is also your friend, and any incompatibilities that were not handled are reported by the compiler. And users are always welcome to post any upgrade related questions they have on the GWT-Ext forums. While the upgrade process might take varying amounts of time for different users, one user reported that he upgraded his application that had 10K lines of code to GWT-Ext 2.0 under two days. Users can expect the API to be stable going forward.
GWT 1.5 has made changes to improve the performance across the Java-Javascript boundary and this could result in a quite a significant performance improvement in GWT-Ext. I am working on making the required (internal) changes to take advantage of this GWT 1.5 optimization.GWT-Ext is LGPL 3.0 licensed. Community forums, Wiki documentation, download links, and further licensing information are all available at the GWT-Ext homepage.
I am also planning on adding wiki documentation, FAQ's and tutorials to help users get productive quickly. In addition to the ongoing enhancements, I am planning on focusing on the users to help them take their development efforts to production. In the end, this is the real benchmark of a successful library.
Download the Free Adobe® Flex® Builder 3 Trial
Adobe® Rich Internet Application Project Portal
Adobe® Rich Internet Application Project Portal
I just started looking at gwt a couple of weeks ago, and at first glance it looks very useful, but what really makes it stand apart is the continued "little goodies" I keep finding like this. It seems people are adding to the core all over the place making it very useful. I applaud your efforts and congrats on the new release! Tim Ferguson, xaware.org
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.
This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.
This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.
This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.
After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.
IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.
Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.
1 comment
Watch Thread Reply