HIMformatics

In a few days, we had grid that supported hierarchical views similar to Query Results view in Microsoft Team Explorer with addition of grouping and searching. No master-detail trickery, everything achieved through XtraGrid customization! We were very satisfied and it became obvious that the XtraGrid is indeed the best choice to improve user interface of the next TeamCompanion version.

TeamCompanion Requirements

As a full-featured Team Foundation Server (TFS) 2010 client, TeamCompanion is required to provide feature rich presentation of Work Items, Work Item Queries and other TFS artifacts. Up until the version 3.0, TeamCompanion used built-in Outlook grid to display Work Item Query content. TFS 2010 brings hierarchical Work Items to the mainstream and built-in Outlook grid was simply not sufficient to provide appropriate experience while working with hierarchical Work Items. This led TeamCompanion team to decision that completely customized grid must be used. They only needed to choose the right one.

WinForms Grids in TeamCompanion UI

Evaluating Options

The team had two options at hand: to develop a hierarchical grid view from scratch, or to customize a third-party grid view to suit their needs. The first option was dropped very quickly and the search for perfect grid started. The most important aspects that were expected from the third-party grid were these:

  • Rich customization options
  • Performance
  • Flexible data binding
  • Theming support
  • Easy to use APIs

After spending a week or two experimenting with various third-party grid views, the team concluded that the most challenging part was to support the hierarchical Work Items view. The most important features were expand/collapse, drag-n-drop, searching and data loading virtualization. First, they tried to achieve all of this using the various master-detail view tweaks. The solution was not very satisfactory and the code was condemned to break at some point. The management of multiple grid views was difficult and they soon concluded that the master-detail is not the way to go. They needed a grid that has limitless customization support so that they can implement the support for hierarchy within the single grid view by themselves. After some experimentation with various grids on the market, there was always one that proved itself to be superior to others. The only one that met all their expectations was the WinForms Grid from DevExpress.

WinForms Controls in TeamCompanion UI

Why XtraGrid?

This is what the team says about their experiences with XtraGrid: "When we started using DevExpress controls, we were hooked very quickly. The API was very easy to use and the performance was above our expectations. We started to dig deep into the workings of XtraGrid which served as a shell for a custom hierarchical grid view implementation. The idea behind the custom hierarchical grid view basically breaks down to this:

  • We will customize the grid view's input handling, filtering, drawing, sorting and grouping.
  • The customized input handling will be used to trigger expand/collapse and drag-and-drop operations.
  • The customized filtering will be used to show/hide the descendants underneath the ancestor row and to implement custom searching mechanism.
  • The customized drawing will be used to draw all of the grid row cells together with the expand/collapse glyps and drag-and-drop visual feedback.
  • The customized sorting will be used to perform hierarchy-aware sorting.
  • The customized grouping will be used to temporarily disable the hierarchy and show the flat grid rows while grouping is in effect.

The XtraGrid supported this idea without any problems. The customization possibilities were near to endless. In a few days, we had grid that supported hierarchical views similar to Query Results view in Microsoft Team Explorer with addition of grouping and searching. No master-detail trickery, everything achieved through XtraGrid customization! We were very satisfied and it became obvious that the XtraGrid is indeed the best choice to improve user interface of the next TeamCompanion version. All the major aspects were already fulfilled by the XtraGrid. Last but not the least of the features that lead us to the final decision to use XtraGrid was the theming support and built-in Outlook skins. It just looks beautiful!"

Ognjen Bajic
MVP VS ALM
Product Manager

EKOBIT TeamCompanion