SmartClient 7.0 Release Candidate available

[UPDATE: RC2, available on the download page, has been declared an official supported release]

At last, a release candidate of SmartClient 7.0 is available.  Download it here:

What do we mean by release candidate?  We are at zero critical bugs according to internal testing, we are in code freeze and will only be fixing newly reported bugs as well as adding and updating documentation and samples.  We expect the RC period to last roughly two to three weeks.

If you plan to move your application to 7.0 any time in the next 6 months, you should definitely grab this release and starting testing now, and submit any bugs you find.

What’s in 7.0

There’s really no way around it once you see the list of new features: this obviously should have been two or more major releases.  The breadth of new functionality is dizzying.  This list below includes only major new feature areas – see the changelog in the SDK to discover the hundreds of minor features that were also added.  Features shown in italics below are new just since 7.0 Beta.

  • Enterprise, SilverWave and BlackOps skins, three more professionally designed, free (LGPL) skins
  • Calendar component: complete drag and drop, databound event editing similar to Google Calendar
  • TileLayout & TileGrid components: display records as a series of tiles, with databinding,
    load on demand, filter and sort, and drag and drop capability
  • Advanced Filtering: client- and server-side support for field-operator-value filtering of
    data, including arbitrarily nested queries
  • Filter Builder: specialized form for end user construction of advanced filters of arbitrary
    complexity
  • SQL Templating: customize the SQL generated by SmartClient’s SQL connector right in the
    DataSource file. Clause by clause overrides make it easy to add simple and complex joins,
    grouping and aggregation while retaining full search features and database independence
  • Transaction Chaining: a transaction where some operations depend on the
    results of other operations can be declared with simple XML in your DataSource
  • DataSource Wizards: generate fully functional DataSources from existing Hibernate entities
    or SQL tables with a simple point and click wizard in Visual Builder
  • Batch DataSource Generator: connect SmartClient to your entire object model in one step by
    generating DataSources from SQL tables, Java Beans or other metadata with a customizable process.
  • CSV / Excel Export: just call grid.exportData() to export the current contents of the grid
    to Excel via CSV, including current sort, filter criteria, column order and column visibility
  • Automatic databound dragging behaviors: grids and trees will now inspect data
    relations declared in DataSources and automatically “do the right thing” for a databound drag
  • Batch Uploader: provides an interface to upload a CSV, validate it and allow the user to
    make corrections before committing, all without coding.
  • Advanced Java Reflection: Java <-> JavaScript translation transparently handles JVM 1.5
    features like Generics and Enums, including nested collections of objects.
  • ColumnTree component: ITunes™-like tree navigation (one column per level)
  • Hiliting: declare hiliting rules based on AdvancedCriteria. Completely client-side
    behavior that works automatically with data paging and filtering
  • Printing: comprehensive and customizable support for rendering printable views of
    SmartClient applications
  • Formula and Summary fields: built-in wizards for end users to define formula fields that
    can compute values using other fields, or summary fields that can combine other fields with
    intervening / surrounding text. Available in all DataBoundComponents, easy to persist as
    preferences
  • ColorPicker component: a full-spectrum color selection component similar to those found in
    graphics packages and other desktop software
  • HeaderSpans: second level headers in grids, for grouping related columns
  • Grid row rollover effects and controls: general purpose ability to attach SmartClient
    components to rows, allowing rounded selection, controls that appear on rollover, and more
  • Grid header rollover: drop-down menus appear on rollover, offering column show/hide,
    freezing and grouping options that previously required right click to discover
  • Data autofitting: horizontal and vertical autofitting to data for ListGrids
  • Grouping modes: built-in and custom grouping modes, such as the ability to group a date
    column by week, day, month or year
  • Visual Builder “toolskin”: edit applications in any skin while Visual Builder itself
    retains consistent look and feel
  • Visual Builder “auto-add”: double-click palette items to intelligently add to last, for
    ludicrously fast screen building
  • AutoFitTextAreaItem: autofits to contained text as the user types
  • Full Tree connectors: TreeGrid connectors support now optionally includes full connector
    lines
  • CubeGrid facet auto-derivation: greatly simplified creation of simple cubes

Each of these major new features deserves a blog post of its own, and we hope to in fact post about some of them, although the many new examples and new docs speak for themselves.

Note that this list doesn’t include two “Previews” that are also included in 7.0:

  • Drawing: a cross-platform vector graphics package that provides drawing of arbitrary shapes, zoom and pan, drag and drop and other interactivity.  No plugins required.
  • Portal: a more advanced portal layout engine and related facilities for persisting not just layout, but an extensible set of information exposed by Portlets, a special class of components with lifecycle management and persistence features.

Pro vs Enterprise Licensing details

If you download and compare the different packages above you’ll get a much more detailed picture of the distinction between our Pro and Enterprise packages.  In a nutshell, from a features perspective, Pro comes with everything except:

  • SQL/HQL Templating
  • Transaction Chaining
  • Server-side Advanced Filtering (client-side filtering  is LGPL)
  • Batch DataSource Generator (but DataSource Wizard is included in Pro)
  • Batch Uploader
  • Network Performance Module
  • Real-Time Messaging Module
  • Analytics Module

The revised licensing page being prepared for the official 7.0 launch will break out the LGPL / Pro / Enterprise split in a graphical fashion (the usual table with rows of checkmarks for features), including links to live examples and docs demonstrating the capabilities of the Pro & Enterprise versions.

We’re very excited about this because, to be perfectly forthright, when we switched SmartClient to open source, our marketing efforts continued to emphasize the overall SmartClient solution, and we made a mistake in not explaining the server functionality very well.  Because SmartClient LGPL seems so complete and so broad when compared to other solutions, there’s been a misconception that the SmartClient Server is a minor add-on to SmartClient, whereas the reality is, it’s the other half.  The cornerstone of SmartClient – the powerful databinding architecture that has so many pervasive benefits in creating your UI – extends onto the server side, where it is arguably even more effective at reducing the amount of code you have to write – frequently, to zero.

If you skipped over the SmartClient Server because the benefits weren’t obvious, now is the time to revisit that choice.  Download the release candidate and start with the new “Server Examples” folder in the Feature Explorer.

Roadmap to 8.0 and beyond

As soon as we get 7.0 final out the door we’ll be posting some more roadmap information about 8.0 and beyond.  We will first put forward a list of areas that we’ll definitely be persuing, then soliciting feedback from customers and open source users about what they want most.  This is all part of an effort to provide more transparency and help teams plan around future SmartClient releases.  Stay tuned.

Cheers,

Charles