Browse our Products

Aspose.Tasks for .NET 24.6 Release Notes

All Changes

KeySummaryIssue Type
TASKSNET-4522Implement resource levelingNew Feature
TASKSNET-11171Fix usage of non-FIPS-compliant algorithmsEnhancement
TASKSNET-11208Fix timephased data of assignment with Contoured work contour is not changed when parent task`s start is changedBug
TASKSNET-11198Fix collision of referenced versions of System.Drawing.Common for version targeting netstandard2.0Bug
TASKSNET-11193Fix multipage TIFF generation in version targeting .net6.0Bug
TASKSNET-11161Fix reading of calendar for the specific fileBug
TASKSNET-11160Fix exception when reading Global MPT template fileBug

Public API and Backwards Incompatible Changes

The following public types were added:Description
Aspose.Tasks.IMessageHandlerRepresents a callback the results of resource leveling.
Aspose.Tasks.Leveling.LevelingOptionsAllows to specify parameters of resource leveling.
Aspose.Tasks.Leveling.LevelingOrderDefines the possible values of leveling order.
Aspose.Tasks.Leveling.LevelingResultRepresents the results of resource leveling.
Aspose.Tasks.Leveling.ResourceLevelerContains resource leveling methods.
Aspose.Tasks.MessageLevelDefines the possible message verbosity levels.
The following public methods and properties were added:Description
Aspose.Tasks.IMessageHandler.Message(Aspose.Tasks.MessageLevel,System.String)Aspose.Tasks invokes this method when outputs a message.
Aspose.Tasks.Leveling.LevelingOptions.#ctorInitializes a new instance of the class.
Aspose.Tasks.Leveling.LevelingOptions.StartDateGets or sets leveling period start date. The default value is the project`s start date.
Aspose.Tasks.Leveling.LevelingOptions.FinishDateGets or sets leveling period end date. The default value is the project`s finish date.
Aspose.Tasks.Leveling.LevelingOptions.ResourcesGets or sets the list of the resources which will be leveled. If null is set, all project resources will be leveled.
Aspose.Tasks.Leveling.LevelingOptions.LevelingOrderGets the order in which the leveling algorithm delays tasks that have overallocations.
Aspose.Tasks.Leveling.LevelingOptions.MessageLevelGets or sets level of log messages emitted by Aspose.Tasks during resource leveling.
Aspose.Tasks.Leveling.LevelingOptions.MessageHandlerGets or sets message handler callback which can be used to intercept log messages produced by Aspose.Tasks during resource leveling.
Aspose.Tasks.Leveling.LevelingResult.#ctorInitializes a new instance of the class.
Aspose.Tasks.Leveling.LevelingResult.AffectedTasksGets a set of tasks affected by resource leveling.
Aspose.Tasks.Leveling.ResourceLeveler.LevelResources(Aspose.Tasks.Project,Aspose.Tasks.Leveling.LevelingOptions)Levels tasks for the specified resources using the specified leveling options.
Aspose.Tasks.Leveling.ResourceLeveler.LevelAll(Aspose.Tasks.Project)Levels tasks for all project’s resources using default leveling options.
Aspose.Tasks.Leveling.ResourceLeveler.ClearLeveling(Aspose.Tasks.Project)Clears any leveling delay that was previously added to the project during resource leveling.
Aspose.Tasks.Leveling.ResourceLeveler.ClearLeveling(System.Collections.Generic.IEnumerable{Aspose.Tasks.Task})Clears any leveling delay that was previously added to the specified tasks during resource leveling.
The following public enumerations were added:Description
Aspose.Tasks.Leveling.LevelingOrder.StandardThe following properties are taken into account: predecessor relationships, total slack (a task with higher total slack is delayed first), start date, priority.
Aspose.Tasks.Leveling.LevelingOrder.IdOnlyTasks are delayed in Id ascending order.
Aspose.Tasks.Leveling.LevelingOrder.PriorityThenStandardThe priority is considered first, then the same properties as in Standard.
Aspose.Tasks.MessageLevel.NoneDo not output messages.
Aspose.Tasks.MessageLevel.ErrorOutput only error messages.
Aspose.Tasks.MessageLevel.CriticalOutput critical messages.
Aspose.Tasks.MessageLevel.WarningOutput warnings.
Aspose.Tasks.MessageLevel.InformationOutput information messages.
Aspose.Tasks.MessageLevel.VerboseOutput debug messages.

Examples and additional notes

Related issue: TASKSNET-4522 - Implement resource leveling.

Resource Leveling is added as an experimental feature in version 24.6. Simplest way to call it is ResourceLeveler.LevelAll(Project) method:

var project = new Project("input.mpp");
ResourceLeveler.LevelAll(project);

Feel free to post your feedback to our free support forum

Currently Resource Leveling has the following limitations:

  1. Tasks in progress (ActualStart has a value) are not moved.
  2. MS Project’s option “Leveling can create splites in remaining work” is not supported
  3. MS Project’s option “Level only within available slack” is not supported
  4. MS Project’s option “Leveling can adjust individual assignments on a task” is not supported
  5. Automatic leveling is not supported.