Quantcast
Channel: Developer Express Inc.
Viewing all articles
Browse latest Browse all 2370

WinForms TreeList - Improved Performance and API (Coming soon in v17.1)

$
0
0

I wanted to share some of the performance and API improvements we've made to the DevExpress WinForms TreeList Control in our v17.1 development cycle. If you're not familiar with this product, you can think of it as a treeview and listview hybrid...The component is designed to display self-referenced hierarchies and render it as a traditional tree or a grid.

Before I begin, let me offer the following...If you're evaluating this product and would like to test it against competing products, we'd be more than happy to provide the sample project used to generate these test results. I think you'll be pleasantly surprised as to how fast our WinForms TreeList executes the functions listed below.

Though we are not finished with all the optimizations we hope to introduce this year, I want to assure you that our goal is to improve the TreeList to such a degree that it's on par with our WinForms Grid from a performance perspective.

Performance

The following table describes the performance improvements shipping inside v17.1.

Time (ms)
DevExpress TreeList v16.2
DevExpress TreeList v17.1
DevExpress WinForms Grid
Sorting by one or more columns (average time)
 
116
47
14
 
58
30
n/a
Filtering by simple or complex criteria (average time)
 
46
31
12
 
52
36
n/a
Searching (against a single column/against all columns
 
116/444
98/321
92/173
 
119/457
100/332
n/a
Loading Rows/Tree from data source (10k,100k records)
 
36/650
34/466
5/10
 
81/2005
79/1703
n/a
 
854/minutes
103/4182
 

API

In this release, we've updated the Tree List's API so that it is more consistent and in-line with our WinForms Grid. These changes address common data operations such as obtaining and setting cell values, selection, sorting and filtering, formatting and hit testing. Our new API also includes a number of tree-specific features including a LINQ-friendly node iterator:

treeList.NodesIterator.Do(node =>
{
    if((State)node["State"] == State.Inactive))
        node.Expanded = false;
});
      int count = treeList1.NodesIterator.Visible

          .Where(node => (decimal)node["Discount"] > 0).Count();

By extending the Tree List's API, we've been able to improve the product's core functionality and expect to evolve it further in coming release cycles. For instance, the filter related API changes introduced in v17.1 allowed us to incorporate Excel-inspired Filtering and the Auto-Filter Row....and helped improve core capabilities such as the availability of predefined filters when using Excel-inspired filter dropdowns.

WinForms TreeList Filtering

As always, we welcome your comments and feedback. Tell us how you're currently using our WinForms TreeList Control.


Viewing all articles
Browse latest Browse all 2370

Trending Articles