During the previous few weeks we’ve worked hard and we’ve improved both the load time and runtime performance characteristics of all WPF based Gantt Chart components from DlhSoft Gantt Chart Light Library. Again, even further.
For some specific configurations (high number of total items, indentation levels, number of child items in summaries, numbers of item/summary dependencies, with auto-scheduling mode on, etc.) read that as: much, much further. Like 10 times better. Or somewhere around, anyway.
We’ve also fixed some long time issues. Like it was the DataGrid scrolling bug when summary nodes with many children were collapsed and therefore a lot of rows were hidden, which (sometimes) even leaded to stack overflow exceptions within the DataGrid code itself. We’ve fixed that one using a middle layer collection of visible items managed internally by our component. (And it works well, performance isn’t going down at all!)
And of course, as usual, we’ve added other improvements to make your life (and your customer’s) easier.
Enough introduction, however, we’d better provide facts instead. Here is, therefore, an extract from our internal git log (original dev content):
- Scrollable content height fix when smaller than viewport
- Optimizations for expansion/collapsing items
- Correction for ScrollTo(item)
- Enlarged DragTaskThumb hovering areas
- CollectionViewSource-based approach for expanding/collapsing items on GanttChartDataGrid
- VisibleItemsConverter
- Fixed AlternatingItemBackground on GanttChartDataGrid when row.GetIndex() % 2 != row.AlternationIndex
- Improvements for auto-scheduling (ToArray calls, sibling checks)
- AreTaskDependendenciesReadOnly, item.AreDependencyConstraintsEnabled
- AsyncPresentationStarted event
- GetScale(index), Scale.IntervalProvider, HeaderContentProvider
- Context menus (item, depenency)
- ExtraTaskTemplate, improvements for thumb sizes
- Summary completion bar (on IsSummaryTaskCompletedEffortVisible true), other improvements, corrections
- SummaryCompletedBarFill default style improvements
- Visible items add optimizations
- Performance improvements at load time
- Index optimizations, expand/collapse optimizations (waitingToRefresh)
- Level resources improvements (exclude tasks without assignments)
- EnsureDependencyConstraints upon OnAsyncPresentationCompleted
- Refresh chart height with timer and also triggered on scrolling
- Undo corrections
- Improvements for predecessor creation and task indentation updates
- Fix for alternating background
- Further alternative item background fix (for Schedule Chart)
- Background priority for EnsureDependencyConstraints to increase performance for updating predecessors
We’re very proud of the result and we hope you’ll like it too. Note that we’ve ensured everything is backwards compatible, so we encourage you to go now and get the new package either with NuGet or directly from our Web site. So… enjoy, and bring extra happiness to your own customers too!
(Are you new to our Gantt Chart library? You can easily run demos on Windows without getting the package and without installing anything – we’ve updated their GitHub repo to use the latest build as well.)