WinForms Gantt Control - The Path Forward

WinForms Team Blog
21 August 2019

A few days before our Early Access Preview build was released, we published the first image of our new Gantt Control via Facebook and Twitter (remember to follow us so you have access to breaking news going forward).

One of the comments/questions we received was the following:

What will be the main differences between this and the current <Scheduler> Gantt View?

In this post, I’ll discuss the differences between our new WinForms Gantt control and our existing Scheduler Gantt View and detail why our Gantt control makes an excellent addition to the DevExpress WinForms product line-up.

The Backstory – Scheduler Gantt View

Before I describe our new Gantt control for WinForms, let me take you back a few years. Eight years ago, we released our Gantt View for the DevExpress Scheduler (v11.2). At the time, we felt the quickest way to deliver a Gantt control to market was to leverage our existing Scheduler codebase.

Once we released the product and received feedback, it became clear that Gantt functionality could not be limited to placing tasks on an endless timeline with basic hierarchical text data pinned to its side. A true Gantt demanded more – capabilities our Scheduler control could not provide. Though many were able to address their business needs with our Gantt View, some of you asked that we overhaul the product (or create a new product) to fully address your requirements.

Like any other customer-driven business, we had to make tough decisions and set priorities. We knew that our existing Scheduler Gantt View was not perfect, but we also knew that demand for a full-featured Gantt control was somewhat limited. We made the choice to postpone this product (repeatedly) until our WPF team announced its plans last year. Yes, the minute we announced our WPF Gantt, the flood gates opened and calls for a WinForms equivalent reverberated through our Support Center (and many of you voted for a new Gantt control in our 2019 Roadmap survey).

The Difference

As I’ve already mentioned, feature-wise, our Scheduler’s Gantt View shipped with a limited feature set. For instance, it lacked visual elements such as milestones and summary tasks. There was no easy way to introduce these elements for one specific Scheduler View without affecting others. For our stand-alone WinForms Gantt control, no such limitation exists.

Another major limitation of our Scheduler’s Gantt View was the integrated treeview. In the Gantt View, this side panel was a called Resource Tree because it hosts Resources, while the main control region renders “Appointments.” These are two separate Scheduler elements, while in a true Gantt, both areas display data from the same source. There is a way to display “Appointment” data in Resource Tree, but it requires a significant amount of custom code. Again, our stand-alone WinForms Gantt control has no such limitations and as such, allows you to deliver a genuine Gantt experience with ease.

Our WinForms Gantt control is a direct TreeList descendant and derives its built-in features from our TreeList control (like the ability to select a hierarchy column or switch to a single-column TreeView-like layout).

At present, the DevExpress Gantt Control does not support direct import and export from Microsoft Project, but you can save Microsoft Project files as XML files, parse them and feed the data directly to our Gantt control (Microsoft Project import/export is something we will continue to address in upcoming release cycles).

Perhaps most important, our new Gantt is much faster than our Scheduler’s Gantt View. Simply said, the Gantt View was not designed to display hundreds of tasks, and though it’s not very often that you see a project timeline of such complexity, our new Gantt control can effectively handle very large data sets. Unlike 8 years ago, our WinForms product line now supports DirectX rendering – performance will not be the Achilles heel of our Gantt control.

Your Feedback Counts

If you’ve read our blog posts over the last year, you know that we take customer feedback seriously. Your thoughts/opinions help us shape our product line. While the difference between the old Gantt View and the new Gantt control is definitely real, what matters most is how you use Gantt controls within your organization. Please help us improve our new Gantt by sharing your use cases with us. Tell us what features are missing from our current product and how you’d like to see us improve the product going forward.

We just released our Early Access Preview build - if you are an active Universal or DXperience subscriber, please install the EAP build and run the Gantt Control demo and tell us what you think. We can’t wait to hear from you.

14 comment(s)
Heiko Mueller
Heiko Mueller
Very nice and useful addition.

Some things I miss in the current version:

  • Highlighting the complete selected line not only in the TreeList line - currently it is somewhat difficult to recognize the selected element in the Gantt.

  • Support of tooltips and text/labels for tasks and summary tasks in Gantt.


    21 August, 2019
    Andrew Fraser
    Andrew Fraser

    Love the new Gantt control and hope the features expand rapidly over the next few releases.

    Keep up the great work :-)

    Andy

    21 August, 2019
    Svetlana (DevExpress Support)
    Svetlana (DevExpress Support)

    @Heiko Mueller


    GanttControl is under active development now. We will certainly support line highlighting, tooltips, and labels.  

    21 August, 2019
    Customer36911
    Customer36911

    thanks for this excellent addition.

    our requirements;

    • add customfields, duration, cost etc.
    • print or export to xlsx,pdf
    • critical path
    • auto shceduling
    • resource usage capacity (daily percentage) 
    • calculate working days
    • split task
    • backward planning
    21 August, 2019
    Andrew Fraser
    Andrew Fraser

    I plan to use it as soon as 19.2 is released.

    For that to happen, printed output MUST be available from day one.

    Don't end up in the same position as you did when you released the diagram control with no printed output.

    Andy

    21 August, 2019
    Svetlana (DevExpress Support)
    Svetlana (DevExpress Support)

    @Andrew Fraser


    Since GanttControl is a TreeList descendant, the left area will be printed/exported out of the box. 
    Regarding the gantt chart area, we will definitely consider supporting the export/print feature for this area as well. We cannot promise you that this functionality will appear in version 19.2, but we will work on this and do our best to provide essential features for our new control in its first release. 

    22 August, 2019
    Gerhard Achrainer
    Gerhard Achrainer
    What will happen to the current Gantt implementation in your Scheduler? Do you plan to remove it in upcoming releases?
    22 August, 2019
    Marcel Boom
    Marcel Boom
    Reading and writing MS-Project files would be awesome!
    22 August, 2019
    Svetlana (DevExpress Support)
    Svetlana (DevExpress Support)

    @Gerhard Achrainer


    We do not have plans to remove GanttView. It is a special view of our SchedulerControl and it suits simple scenarios. 

    23 August, 2019
    Steve Sharkey
    Steve Sharkey

    I was one of those calling for winforms Gantt chart, no news was forth coming and as advised by yourselves many times no guarantees means I had to justify a renewal of my subscription on the basis of what was there not what might be - as a lone developer I couldn't justify the expense based on what could be 2-3 years of waiting for the gantt chart to reach winforms so I didn't renew - typical that in less than a year it's finally here!

    I'm really glad it's finally made it - just wish it had been announced a few months earlier. I guess to justify the re-subscription I need to leave it a couple of years now and reap the collective benefits of several years of updates to justify the elevated subscription price.

    27 August, 2019
    Svetlana (DevExpress Support)
    Svetlana (DevExpress Support)

    @Steve Sharkey

    We are happy to hear that you find our new GanttControl useful and consider re-newing your Universal subscription. I should say that we have introduced a lot of enhancements between versions 18.1 and 19.2. You can review what changes we made on our Version History web page.

    Take a special look at the Upgrade Notes help article to learn how to upgrade your application to a newer version. 

    If you used another gantt chart control or a custom solution, we would love to know what features were essential for you, what difficulties you faced, what your scenarios were, etc. Feel free to share your opinion with us in the EAP 19.2: New Gantt Control thread or submit a new ticket to our Support Center

    28 August, 2019
    Tony Tadros Zaky
    Tony Tadros Zaky

    hello Devexpress 

    long waited for this ,but same not going to be able to use with treeview control as basis why not using grid and this can open for alot of different possibilities 

    Regards

    Tony

    8 September, 2019
    Customer45363
    Customer45363

    Hi DevExpres

    Most needed features have already been mentioned by other people, I will just add the followings, please consider adding them into the gantt control:

    • runtime interactions
      • drag bars horizontally and instantly update the start and end time of the task AND update all related parent's (Summary Tasks) start and end time
      • drag bars vertically on the gantt and tree table to move a task (or a group of tasks) into another parent (Summary Task)
      • bar auto snap, when moving bars horizontally you want the bars to be snapped to the start (or end) of another bar and be able to tell visually you're snapping the dragged bar to another bar with a hot pink line or something
      • task window (optional): each task should be bounded by a window if the earliest start and latest finish time are set, and be able to visually see the boundary while moving the bar horizontally so you know where the task can go.
    • custom bar styling
      • for bars
      • for downtime (the gaps in between the split tasks)
    • legend view
      • this is particular useful when you have multiple bar styles on the Gantt

    Regards,

    Jeremy Y


    27 October, 2019
    Svetlana (DevExpress Support)
    Svetlana (DevExpress Support)

    Hi Jeremy, 

    The features you have requested look interesting and we will definitely consider them for our future updates.

    Currently, you can already customize task appearance by using the Appearances options and CustomDraw~ events. 

    29 October, 2019

    Please login or register to post comments.