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

WPF Gantt Control – Your Feedback is Needed

$
0
0

Disclaimer

The specifications/features outlined in this blog post are subject to change.

Our WPF team has begun work on a WPF Gantt component. To make certain the product we deliver addresses your business needs, we thought it important to share its capabilities with you and to solicit your feedback. Our objective is to create the best possible product – with your help, we expect to ship a CTP by year end and officially release the product in the first half of 2019.

Core Functionality

The DevExpress Gantt Control will consist of a Tree List (hierarchical grid with columns) on the left and the Gantt region on the right:

Gantt Preview

This layout will be familiar to those of you using Microsoft Project. Though similar from a UI perspective, our intent is not to blindly replicate Microsoft Project. If Microsoft ships a feature, it does not mean we will incorporate like functionality in our Gantt Control.  

Gantt Area

The Gantt area will be able to display Tasks, Summary Tasks, and Milestones.

Task Types

All these elements will include predefined appearance settings (based upon the currently selected theme) that will be customizable with styles and templates. You will also be able to define a template for the content displayed next to a task.

The Gantt area will reuse visual elements (UI Virtualization) and will be able to handle 10000 tasks without performance issues.

Time Scale

You will be able to modify zoom factors - displaying tasks within a specific date range.

The time scale will also be customizable. You will be able to display/hide weekends, highlight holidays and special dates (Strip Lines).

Task Progress

Every task will include a progress value. This will be displayed as a progress bar within the Gantt area.

Task Progress

Task Predecessors

Each task will have one or more of the following predecessor types: SS, SF, FS, FF (see https://en.wikipedia.org/wiki/Dependency_(project_management) for more information). Tasks will be connected to their predecessors visually within the Gantt area.

Task Predecessors

Resources

You will be able to assign one or more resources to a task. Resource names will be displayed next to tasks in the Gantt area.

Tree List Area

The Tree List will be customizable. You will be able to modify settings, add new columns, or customize existing options.

Data Binding

The DevExpress Gantt Control will be a data aware control – it will not have its own item collection. You will be able to assign your data objects to the ItemsSource collection and specify mappings to bind task properties (StartDate, EndDate, etc.) to your data source fields.

To define the task hierarchy, you will be able to use mappings (Id and ParentId for flat sources and Children for hierarchical sources) or return children in code.

We will also provide built-in data objects (GanttTask, GanttResource, GanttPredecessor) for those who do not already have types for Gantt elements. If you assign a collection for these objects to the ItemsSource property, you will not need to specify mappings.

The Gantt Control will listen to changes in bound objects and update its state accordingly.

Editing

We will start with a read-only Gantt and work on editing once the UI/presentation is complete. You will always be able to manually edit a task via a dialog.

Undo/Redo

We will not provide global Undo/Redo functionality. This would introduce a degree of complexity and a set of restrictions (both during development and for end-users) we wish to avoid at this stage.  

Once we support editing in the Tree List, you will be able to cancel your changes before navigating away from the edited task.

Validation

We will consider validation (displaying errors for overlapping dates, busy resources, etc.) when we support editing.

Automatic Scheduling

When we support editing, we will also implement automatic scheduling for tasks – calculating StartDate/EndDate/Duration based on partially specified properties and defined Predecessors.

Automatic Scheduling

Import/Export

Since the Gantt control will work with external data, it will not feature built-in import/export to/from XML. However, it will be easy to manually parse an XML file from Microsoft Project and create task objects (since our Gantt Control uses similar terminology). It’s likely that we will create an example or a helper class for this feature.

Scheduler Integration

The Gantt Control will not use Scheduler objects and vice versa. However, since both controls can be bound to data, you will be able to display your objects in both the Gantt and the Scheduler.

Printing and Export

It will be possible to export and print the Tree List area of the Gantt control. We will not introduce printing functionality for the Gantt area until its UI/presentation and data editing functionality are complete.

Other Features

We consider these features less important, optional, or easy to implement on the client side. We will not be focused on these during our initial development phase.

  • Built-in task edit form
  • Built-in Ribbon
  • Constraints for automatic scheduling
  • Baseline
  • Resource view (displaying multiple tasks in a single row)
  • Timeline
  • Recurring Tasks

Your Feedback is Important

As mentioned at the beginning of this blog post, DevExpress wants and needs your feedback. If you’re interested in a WPF Gantt control or have used one in the past, please take a moment to comment here or write to us at support@devexpress.com. We want to know more about your business needs, use cases and how you would benefit from a product like this in a production environment.

A note to our WinForms users

If you’re using WinForms and are wondering if we have similar plans for the WinForms platform, the answer is yes. Our decision to pursue this product for WinForms is predicated upon the feedback we receive from WPF users.


Viewing all articles
Browse latest Browse all 2370

Trending Articles