Prerequisites for the frameworks was that the framework should have sophisticated tables (aka Grids) and sophisticated dialogs. Also of interest in our evaluation was if the framework could do treetables.
The things we were interested in for a grid were standard functionality that you would expect in a grid widget; sorting, filtering, cell editing, and also some less common features such as ‘column picker’ – that is, being able to choose which columns to display using a palette. We were also looking at column manipulation (resize, position), and file export.
What we were looking for in a dialog/window, was ability to display as modal dialog, and also dialog manipulation, ie moving, resizing.
These are the results of our research (click on image for better quality) :
The four yellow highlighted columns are the shortlist of candidates (we eventually went with extjs). Y=Feature is offered, N=Not offered, and we also have question marks in our analysis, where it wasn’t clear if it was offered or not. It would have been possible to dig deeper had we more time.
The bottom row is Stackoverflow References (SOR). Which is an indication of popularity and adoptability.
We also looked at cost, but that was not so much of an issue.
The frameworks can be broadly divided into those that are grid-only (SlickGrid, Flexigrid, Ingrid, Datatables and jqGrid), and those that offer a complete GUI framework (jQueryUI, extjs, yUI, DHTMLX, qooxdoo, Smartclient, Wakanda, Webix).
Some of these can also be lumped into a category as ‘framework for plugins’. jQuery and Dojo offer a foundation framework, on top of which plugins can be developed. In hindsight I guess AngularJS/Ember/Bootstrap and friends could also be lumped into that category.
A few words on some of the technologies :
jQueryUI – disappointing. Only really offers a pop-up dialog.
ExtJS – very comprehensive, high adoption, not exactly cheap.
yUI – fairly inconsistent, and has now been discontinued.
DHTMLX – simlar somewhat to extjs
qooxdoo – comprehensive and suprisingly free. The only thing that put us off was the low adoption rate, but hopefully that will change in the future.
SmartClient – Powerful rich components that costs money. Suffers from low adoption rate.
Dojo – Looks quite good. I think we didn’t go for this because of its plugin architecture.