DlhSoft Project Management Library Documentation

Project Management Library contains Windows® client components such as GanttChartTaskListView, ScheduleChartResourceListView, LoadChartResourceListView, GanttChartView, ScheduleChartView, LoadChartView, TaskListView, ResourceListView, ScheduleDefinitionView, PertChartView, and NetworkDiagramView controls:

·        GanttChartTaskListView control is used to display and update a list of task items using a grid view and an attached Gantt Chart managed either by an internal TaskManager instance or by an instance provided by the developer through the TaskManagerSource property.

·        ScheduleChartResourceListView control is used to display and update a list of resource items using a grid view and an attached Schedule Chart managed either by an internal TaskManager instance or by an instance provided by the developer through the TaskManagerSource property.

·        LoadChartResourceListView control is used to display and update a list of resource items using a grid view and an attached Load Chart managed either by an internal TaskManager instance or by an instance provided by the developer through the TaskManagerSource property.

·        GanttChartView control is used to display and update a list of task items using a Gantt Chart managed either by an internal TaskManager instance or by an instance provided by the developer through the TaskManagerSource property.

·        ScheduleChartView control is used to display and update a list of resource items using a Schedule Chart managed either by an internal TaskManager instance or by an instance provided by the developer through the TaskManagerSource property.

·        LoadChartView control is used to display a list of resource items using a Load Chart managed either by an internal TaskManager instance or by an instance provided by the developer through the TaskManagerSource property.

·        TaskListView control is used to display and update a list of task items using a grid view managed either by an internal TaskManager instance or by an instance provided by the developer through the TaskManagerSource property.

·        ResourceListView control is used to display and update a list of resource items using a grid view managed either by an internal ResourceManager instance or by an instance provided by the developer through the ResourceManagerSource property.

·        ScheduleDefinitionView control is used to display and update a schedule definition item managed either by an internal ScheduleDefinitionManager instance or by an instance provided by the developer through the ScheduleDefinitionManagerSource property.

·        TaskManager component is used to perform task management business logic, such as ensuring that task indentation, start date and time, effort, completed effort, assignments, predecessors, cost, minimum start, maximum start, minimum finish, and maximum finish are valid at all times, and computing task visibility based on task indentation and expansion, task duration and finish date and time based on task start date and time, effort, assignments, or child tasks of a summary task, and so on.

·        ResourceManager component is used to perform resource management business logic, such as ensuring that resource cost per usage and cost per hour are valid at all times, and so on.

·        PertChartView lightweight control is used to display a list of task event items using a PERT Chart.

·        NetworkDiagramView lightweight control is used to display a list of task items using a network diagram.

Both the main controls and the core manager components (used with standard data management mode) require setting the input item collection or item to manage through Items, ItemsSource, or Content properties, and expose corresponding ManagedTasks (or Tasks), ManagedResources (or Resources), and ManagedScheduleDefinition properties representing their output. Whenever the input item collection is changed after the initialization, the output task or resource collection is updated accordingly, ensuring validation, computing supplemental and overall properties, and applying appropriate side effects to other tasks or resources when necessary.

The developer may control how the business logic is applied to the task, resource, or schedule definition items by setting or clearing values for data member identifying properties such as IndentationMemberPath, ContentMemberPath, StartMemberPath, EffortMemberPath, CompletedEffortMemberPath, AssignmentsMemberPath (or AssignmentsStringMemberPath), IsExpandedMemberPath, ScheduleMemberPath, PredecessorsMemberPath (or PredecessorsStringMemberPath), DurationMemberPath, FinishMemberPath, IsMilestoneMemberPath, CompletionMemberPath, IsCompletedMemberPath, CostMemberPath, MinStartMemberPath, MaxStartMemberPath, MinFinishMemberPath, MaxFinishMemberPath, CostPerUsageMemberPath, CostPerHourMemberPath, and DefinitionStringMemberPath.

By default, the data member identifying properties are configured to use the members of the TaskItem, ResourceItem, and ScheduleDefinitionItem classes provided with the library.

If a custom task item type is used, it should provide properties similar to those listed below, and their names should be set to the appropriate data member identifying properties:

·        Indentation: The hierarchy is based on the indentation level values of the tasks, so that a task with a lower index in the collection and having a specific indentation level will become the parent task for the tasks with a higher index in the collection and having an increased indentation level;

·        Content: Usually the name of the task;

·        Start, Effort, CompletedEffort;

·        Assignments (or AssignmentsString): The assignments string is of this form: John, Diane [80%];

·        IsExpanded: If a parent task is expanded its child tasks become visible. If a parent task is collapsed its child tasks become invisible;

·        Schedule;

·        Predecessors (or IndexString and PredecessorsString): The predecessors string is of this form: 1, 2SS, 3FF+2;

·        Duration, Finish;

·        IsMilestone: A milestone task has its effort value set to zero;

·        Completion, IsCompleted: A completed task has its completed effort value equal to effort;

·        Cost: The minimum value of this property is the total task assignment cost, computed using the assigned resource per usage and per hour costs and the assigned allocation units;

·        MinStart, MaxStart, MinFinish, MaxFinish: The start and/or finish minimum and/or maximum task constraints.

If a custom resource item type is used, it should provide properties similar to those listed below, and their names should be set to the appropriate data member identifying properties:

·        Content: Usually the name of the resource;

·        Schedule, CostPerUsage, CostPerHour.

If a custom schedule definition item type is used, it should provide properties similar to those listed below, and their names should be set to the appropriate data member identifying properties:

·        Content: Usually the name of the schedule definition;

·        DefinitionString: the string is of this form: Monday-Friday 08:00-12:00 12:30-16:30, Saturday 08:00-12:00, 01/01/2010 -, 01/02/2010-01/05/2010 11:00-14:00.

To increase performance, the manager components can also be used with simple data management mode, that requires the developer to access and add, update, and remove managed entities using specific methods, such as the indexer, and Add, AddRange, Insert, InsertRange, RemoveAt, RemoveRangeAt, Remove, RemoveRange, and Clear.

Here are the most important types regarding data access and management and their usage:

·        EntityItem classes (such as TaskItem): data objects that could serve as data source within controls or manager components when the standard data management mode is used;

·        SimpleEntityItem classes (such as SimpleTaskItem): simple object definitions that are used to define entities to add within manager components when the simple data management mode is used;

·        Entity classes (such as Task): service objects either generated automatically (through data binding with validation, when standard data management mode is used) or manually defined (when simple data management mode is used), accessible using the indexers of the manager components.

Structure

The root assemblies and types that the library includes are listed below:

Project Data Gantt Chart Controls (DlhSoft.ProjectData.GanttChart.Controls) assembly:

·        GanttChartTaskListView control (DlhSoft.Windows.Controls namespace);

·        ScheduleChartResourceListView control (DlhSoft.Windows.Controls namespace);

·        LoadChartResourceListView control (DlhSoft.Windows.Controls namespace);

·        GanttChartView control (DlhSoft.Windows.Controls namespace);

·        ScheduleChartView control (DlhSoft.Windows.Controls namespace);

·        LoadChartView control (DlhSoft.Windows.Controls namespace);

·        TaskGanttChartViewBase control base (DlhSoft.Windows.Controls namespace);

·        ResourceGanttChartViewBase control base (DlhSoft.Windows.Controls namespace);

Project Data Management Controls (DlhSoft.ProjectData.Management.Controls) assembly:

·        TaskListView control (DlhSoft.Windows.Controls namespace);

·        ResourceListView control (DlhSoft.Windows.Controls namespace);

·        ScheduleDefinitionView control (DlhSoft.Windows.Controls namespace);

Project Data Core (DlhSoft.ProjectData.Core) assembly:

·        TaskManager component (DlhSoft.Windows.Data namespace).

·        ResourceManager component (DlhSoft.Windows.Data namespace).

·        AssignmentManager component (DlhSoft.Windows.Data namespace).

·        PredecessorManager component (DlhSoft.Windows.Data namespace).

·        ScheduleDefinitionManager component (DlhSoft.Windows.Data namespace);

Project Data PERT Chart Light Controls (DlhSoft.ProjectData.PertChart.LightWPF.Controls) assembly:

·        PertChartView control (DlhSoft.Windows.Controls.Pert namespace);

·        NetworkDiagramView control (DlhSoft.Windows.Controls.Pert namespace).

Note that the root assemblies may have internal references to a few dependency assemblies, but only the root assemblies and types listed above would be licensed by purchasing a license for this product.

For your information, these are the dependency assemblies used by each of the root assemblies:

Project Data Gantt Chart Controls (DlhSoft.ProjectData.GanttChart.Controls) assembly:

·        Project Data Management Controls (DlhSoft.ProjectData.Management.Controls) dependency assembly;

·        Project Data Core (DlhSoft.ProjectData.Core) dependency assembly;

·        Hierarchical Data Controls (DlhSoft.HierarchicalData.Controls) dependency assembly;

·        Hierarchical Data Core (DlhSoft.HierarchicalData.Core) dependency assembly;

·        Data Controls (DlhSoft.Data.Controls) dependency assembly;

·        Data Core (DlhSoft.Data.Core) dependency assembly;

·        Project Data PERT Chart Light Controls (DlhSoft.ProjectData.PertChart.LightWPF.Controls) dependency assembly;

Project Data Management Controls (DlhSoft.ProjectData.Management.Controls) assembly:

·        Project Data Core (DlhSoft.ProjectData.Core) dependency assembly;

·        Hierarchical Data Controls (DlhSoft.HierarchicalData.Controls) dependency assembly;

·        Hierarchical Data Core (DlhSoft.HierarchicalData.Core) dependency assembly;

·        Data Controls (DlhSoft.Data.Controls) dependency assembly;

·        Data Core (DlhSoft.Data.Core) dependency assembly;

Project Data Core (DlhSoft.ProjectData.Core) assembly:

·        Hierarchical Data Core (DlhSoft.HierarchicalData.Core) dependency assembly.

·        Data Core (DlhSoft.Data.Core) dependency assembly;

Project Data PERT Chart Light Controls (DlhSoft.ProjectData.PertChart.LightWPF.Controls) assembly:

·        None.

Get Started

To add references to the library assemblies within your solution project using Visual Studio®, please follow these steps:

·        Select your project in Solution Explorer;

·        Use the Add Reference command from the Project menu to open the Add Reference dialog window;

·        Locate and select the assemblies you want to reference within the .NET tab of the Add Reference dialog window;

·        Click OK to close the dialog window. The assemblies are referenced in your project.

Note that in some situations, such as within a Windows® Presentation Foundation (WPF) application, you should add references to the appropriate dependency assemblies of each used assembly also.

To be able to specify the referenced type names in your main source code without any DlhSoft namespace prefix, make sure you also include using or Imports directives and/or xmlns definitions for the appropriate namespaces in each of the referencing source code files.

To add the library Windows® Presentation Framework (WPF) controls as reference shortcuts in a Toolbox group within Visual Studio®, and to create control instances in the WPF user interface designer using the Toolbox, please follow these steps:

·        Open the WPF user interface designer for a window, page, or another element that you want to add controls to;

·        Open the Toolbox and display its context menu;

·        Use the Add Tab command from the context menu to create a new group, such as DlhSoft, if the group you want to add the controls to doesn't already exist;

·        Select the tab you want to add the WPF controls to and display its context menu;

·        Use the Choose Items command from the context menu to open the Choose Toolbox Items dialog window;

·        Locate and select the controls you want to add within the WPF Components tab of the Choose Toolbox Items dialog window;

·        Click OK to close the dialog window. The controls are added to your Toolbox group;

·        Double click a control reference shortcut icon from the Toolbox group to create an instance of that control within your window, page, or other element that is open in the WPF user interface designer.