Migrieren

Aspose.Tasks FÜR .NET 8.0.0 ist eine überarbeitete Version der API, die beträchtliche Änderungen aus der Nutzungsperspektive enthält. Zu den wichtigsten Unterschieden beider Implementierungen gehören:

  • Legacy -API ermöglicht, öffentliche Felder verschiedener Projektdatenklassen wie Projekte, Aufgaben, Ressourcen usw. festzulegen, während die neue Implementierung SET -Methoden einführt und Methoden erhalten, um dasselbe zu erreichen
  • Berechnen Sie die Methoden neu, um vom Benutzer in der Legacy -API nach bestimmten Operationen wie Ressourcenzuweisungen manuell aufgerufen zu werden. Die neue Aspose.Tasks für .NET API führt die meisten solchen Berechnungen automatisch ohne erforderliche Benutzerintervention durch.
  • Die neue API bietet sowohl manuelle als auch automatische Neuberechnungsmodi ähnlich wie Microsoft Project (MSP). Der manuelle Modus berechnet nur die erforderlichen Felder, während der automatische Modus alles neu berechnet. Dadurch wird die Notwendigkeit der manuellen Aufrufmethoden beseitigt und verbessert die allgemeine API -Nutzung.

Diese neue API ist mit der Legacy -API nicht kompatibel und das Ziel dieses Artikels ist es, Ihnen bei der Migration Ihres Codes in die neue API zu helfen. Der Artikel zeigt vergleichende Code -Beispiele des Erbes und der neuen API -Implementierung und umfasst:

Setzen Sie Standard -Projekteigenschaften **

Aspose.Tasks ‘Legacy API ermöglichte die Festlegung der Standardeigenschaften eines Projekts, indem die öffentlichen Attribute der Projektklasse direkt festgelegt werden. In der neuen API -Implementierung enthält sie jedoch die Methoden, um diese zu erreichen.

Legacy API -Code Beispiel

1    Project prj = new Project();
2    prj.StartDate = DateTime.Now;
3    prj.DefaultStartTime = prj.StartDate;
4    prj.DefaultTaskType = TaskType.FixedDuration;
5    prj.DefaultStandardRate = 15;
6    prj.DefaultOvertimeRate = 12;
7    prj.DefaultTaskEVMethod = EarnedValueMethodType.PercentComplete;
8    prj.DefaultFixedCostAccrual = CostAccrualType.Prorated;
9    prj.Save( "Project4.xml" , Aspose.Tasks.Saving.SaveFileFormat.XML);
 1'Create a project instance
 2    Dim prj As New Project()
 3    prj.IsScheduleFromStart = True 
 4    prj.DefaultStartTime = prj.StartDate
 5    prj.DefaultTaskType = TaskType.FixedDuration
 6    prj.DefaultStandardRate = 15
 7    prj.DefaultOvertimeRate = 12
 8    prj.DefaultTaskEVMethod = EarnedValueMethodType.PercentComplete
 9    prj.DefaultFixedCostAccrual = CostAccrualType.Prorated
10    prj.Save("Project4.xml", Aspose.Tasks.Saving.SaveFileFormat.XML)

New Aspose.Tasks for .NET 8.x Approach

 1    Project project = new Project();
 2    project.Set(Prj.ScheduleFromStart,true);
 3    project.Set(Prj.StartDate, DateTime.Now);
 4    project.Set(Prj.DefaultStartTime,project.Get(Prj.StartDate));
 5    project.Task(TaskType, TaskType.FixedDuration);
 6    project.Set(Prj.DefaultStandardRate, 15);
 7    project.Set(Prj.DefaultOvertimeRate, 12);
 8    project.Set(Prj.DefaultTaskEVMethod, EarnedValueMethodType.PercentComplete);
 9    project.Set(Prj.DefaultFixedCostAccrual, CostAccrualType.Prorated);
10    project.Save("ProjectDefaultProps.xml", SaveFileFormat.XML);
 1    Dim project As New Project()
 2    project.[Set](Prj.ScheduleFromStart, True)
 3    project.Task(TaskType, DateTime.Now)
 4    project.[Set](Prj.DefaultStartTime, project.[Get](Prj.StartDate))
 5    project.[Set](Prj.DefaultTaskType, TaskType.FixedDuration)
 6    project.[Set](Prj.DefaultStandardRate, 15)
 7    project.[Set](Prj.DefaultOvertimeRate, 12)
 8    project.[Set](Prj.DefaultTaskEVMethod, EarnedValueMethodType.PercentComplete)
 9    project.[Set](Prj.DefaultFixedCostAccrual, CostAccrualType.Prorated)
10    project.Save("ProjectDefaultProps.xml", SaveFileFormat.XML)

Kalender erstellen und zu einem Projekt hinzufügen

Damit die zum Projekt hinzugefügten Kalenderelemente ordnungsgemäß funktionieren, musste die alte API die Kalender-UIDs neu berechnen. In der neuen API erfolgt die UID-Neuberechnung jedoch automatisch, sodass die Berechnungen nicht manuell aufgerufen werden müssen.

Codebeispiel für die alte API

 1    Project prj =  new Project();
 2    Aspose.Tasks.Calendar cal1 = new  Aspose.Tasks.Calendar();
 3    cal1.Name ="no info";
 4    Aspose.Tasks.Calendar cal2 = new  Aspose.Tasks.Calendar(1);
 5    cal2.Name = "no name";
 6    Aspose.Tasks.Calendar cal3 = new  Aspose.Tasks.Calendar( "cal3" );
 7    prj.Calendars.Add(cal1);
 8    prj.Calendars.Add(cal2);
 9    prj.Calendars.Add(cal3); 
10    prj.Save( "Project.Xml", Aspose.Tasks.Saving.SaveFileFormat.XML);
 1    'Create a project instance
 2    Dim prj As New Project()
 3    'Define Calendar
 4    Dim cal1 As New Aspose.Tasks.Calendar()
 5    cal1.Name = "no info"
 6    Dim cal2 As New Aspose.Tasks.Calendar(1)
 7    cal2.Name = "no name"
 8    Dim cal3 As New Aspose.Tasks.Calendar("cal3")
 9    prj.Calendars.Add(cal2)
10    prj.Calendars.Add(cal3)
11    prj.CalcCalendarUids()
12    'Save the Project
13    prj.Save("Project.Xml", Aspose.Tasks.Saving.SaveFileFormat.XML)

New Aspose.Tasks for .NET 8.x Approach

1 
2
3    Project prj = new Project();
4    Aspose.Tasks.Calendar cal1 = prj.Calendars.Add("no info");
5    Aspose.Tasks.Calendar cal2 = prj.Calendars.Add("no name");
6    Aspose.Tasks.Calendar cal3 = prj.Calendars.Add("cal3");
7    prj.Save("Project.Xml", Aspose.Tasks.Saving.SaveFileFormat.XML);
1    'Create a project instance
2    Dim prj As New Project()
3    Dim cal1 As Aspose.Tasks.Calendar = prj.Cal 
4    Dim cal2 As Aspose.Tasks.Calendar = prj.Calendars.Add("no name")
5    Dim cal3 As Aspose.Tasks.Calendar = prj.Calendars.Add("cal3")
6    prj.Save("Project.Xml", Aspose.Tasks.Saving.SaveFileFormat.XML)

Erstellen eines Standardkalenders

Die Neuberechnung der Kalender-UIDs ist in der neuen ASpose.Tasks-API im Vergleich zur alten API nicht mehr erforderlich.

Legacy API Code Sample

1    //Create a project instance
2    Project prj = new  Project();
3    //Define Calendar and make it standard
4    Aspose.Tasks.Calendar cal1 = new  Aspose.Tasks.Calendar("My Cal");
5    Aspose.Tasks.Calendar.MakeStandardCalendar(cal1);
6    prj.Calendars.Add(cal1);
7    prj.CalcCalendarUids();
8    prj.Save( "Project.Xml" , Aspose.Tasks.Saving.SaveFileFormat.XML);
1    'Create a project instance
2    Dim prj As New Project()
3    'Define Calendar and make it standard
4    Dim cal1 As New Aspose.Tasks.Calendar("My Cal")
5    Aspose.Tasks.Calendar.MakeStandardCalendar(cal1)
6    prj.Calendars.Add(cal1)
7    prj.CalcCalendarUids() 
8    prj.Save("Project.Xml", Aspose.Tasks.Saving.SaveFileFormat.XML)

New Aspose.Tasks for .NET 8.x Approach

1    // Create a project instance
2    Project project = new Project();
3
4    // Define Calendar and make it standard
5    Aspose.Tasks.Calendar cal1 = project.Calendars.Add("My Cal");
6    Aspose.Tasks.Calendar.MakeStandardCalendar(cal1);
7    project.Save("Project.Xml", Aspose.Tasks.Saving.SaveFileFormat.XML);
1    'Create a project instance
2    Dim project As New Project()
3
4    'Define Calendar and make it standard
5    Dim cal1 As Aspose.Tasks.Calendar = project.Calendars.Add("My Cal")
6    Aspose.Tasks.Calendar.MakeStandardCalendar(cal1)
7
8    'Save the Project
9    project.Save("Project.Xml", Aspose.Tasks.Saving.SaveFileFormat.XML)

Aufgabe erstellen und zum Projekt hinzufügen

Um eine neue Aufgabe in der alten API zu erstellen, musste eine Stammaufgabe definiert, als Stammaufgabe zum Projekt hinzugefügt und anschließend eine neue Aufgabe als untergeordnete Aufgabe hinzugefügt werden. Mit der neuen API ist die Definition der Stammaufgabe nicht mehr erforderlich. Die neue API übernimmt diese automatisch beim Hinzufügen der ersten Aufgabe zum Projekt.

Codebeispiel der alten API

 1    Project project = new Project();
 2    Task rootTask = new Task();
 3    Task tskGen = new Task("Task1");
 4    tskGen.Id = 1;
 5    tskGen.Uid = 1;
 6    tskGen.Start = DateTime.Parse("17-Aug-2009 8:00 AM" );
 7    tskGen.Finish = DateTime.Parse( "17-Aug-2009 5:00 PM" );
 8    project.RootTask = rootTask;
 9    project.RootTask.Children.Add(tskGen);
10    project.Save("Project.xml", SaveFileFormat.XML);
1    Dim project As New Project()
2    Dim tskGen As New Task("Task1")
3    tskGen.Id = 1
4    tskGen.Uid = 1
5    tskGen.Start = DateTime.Parse("17-Aug-2009 8:00 AM")
6    tskGen.Finish = DateTime.Parse("17-Aug-2009 5:00 PM")
7    project.RootTask = rootTask
8    project.RootTask.Children.Add(tskGen)
9    project.Save("Project.xml", SaveFileFormat.XML)

New Aspose.Tasks for .NET 8.x Approach

1    Project project = new Project();
2    Task task = project.RootTask.Children.Add("Task 1");
3    task.Set(Tsk.Start, project.RootTask.Get(Tsk.Start).AddDays(1));
4    // set task start day
5    project.Save("CreateTasks.xml", SaveFileFormat.XML);
1    Dim project As New Project()
2    Dim task As Task = project.RootTask.Children.Add("Task 1")
3    task.[Set](Tsk.Start, project.RootTask.[Get](Tsk.Start).AddDays(1))
4    'set task start day
5    project.Save("CreateTasks.xml", SaveFileFormat.XML)

Ressource erstellen und zum Projekt hinzufügen

Die API-Klasse „Ressource“ wurde um die Methoden „Set“ und „Get“ erweitert, mit denen Attribute der Ressource eines Projekts bearbeitet werden können.

Legacy API Code Sample

1    Project project = new Project();
2    Resource res =   Resource(new "Res1");
3    res.Id = 1;
4    res.Uid = 1;
5    res.Start = DateTime.Parse("19-Aug-2009 8:00 AM");
6    res.Finish = DateTime.Parse("19-Aug-2009 5:00 PM");
7    project.Resources.Add(res);
8    project.Save("Project.xml", SaveFileFormat.XML);
1    Dim project As New Project()
2    Dim res As New Resource("Res1")
3    res.Id = 1
4    res.Uid = 1
5    res.Start = DateTime.Parse("19-Aug-2009 8:00 AM")
6    res.Finish = DateTime.Parse("19-Aug-2009 5:00 PM")
7    project.Resources.Add(res)
8    project.Save("Project.xml", SaveFileFormat.XML)

New Aspose.Tasks for .NET 8.x Approach

1    Project project = new Project();
2    Resource rsc = project.Resources.Add("R1");
3    rsc.Set(Rsc.Start, DateTime.Parse("31-Aug-2014 8:00 AM"));
4    rsc.Set(Rsc.Finish, DateTime.Parse("31-Aug-2014 5:00 PM"));
5    project.Save("CreateResource.xml", SaveFileFormat.XML);
1    Dim project As New Project()
2    Dim rsc As Resource = project.Resources.Add("R1")
3    rsc.[Set](Rsc.Start, DateTime.Parse("31-Aug-2014 8:00 AM"))
4    rsc.[Set](Rsc.Finish, DateTime.Parse("31-Aug-2014 5:00 PM"))
5    project.Save("CreateResource.xml", SaveFileFormat.XML)

Ressourcenzuweisung erstellen und zum Projekt hinzufügen

Die Klasse „ResourceAssignment“ führt außerdem die Methoden „Set“ und „Get“ ein, ähnlich wie bei anderen Datensammlungen der API, z. B. Aufgaben, Ressourcen und Aufgabenlinks.

Codebeispiel für Legacy-API

 1    Project project = new Project();
 2    Task tskRoot =  new Task();
 3    Task task = new Task("Task");
 4    Resource rsc = new Resource();
 5    rsc.StandardRate = 10;
 6    rsc.OvertimeRate = 15;
 7    ResourceAssignment assignment = new ResourceAssignment(task, rsc);
 8    assignment.Uid = 1;
 9    assignment.Start = DateTime.Parse("18-Aug-2009 8:00 AM" );
10    assignment.Finish = DateTime.Parse("18-Aug-2009 5:00 PM" );
11    project.RootTask = tskRoot;
12    project.RootTask.Children.Add(task);
13    project.Resources.Add(res);
14    project.ResourceAssignments.Add(assignment);
15    project.Save("project.xml", SaveFileFormat.XML);
 1    Dim project As New Project()
 2    Dim tskRoot As New Task()
 3    Dim task As New Task("Task")
 4    Dim rsc As New Resource()
 5    rsc.StandardRate = 10
 6    rsc.OvertimeRate = 15
 7    Dim assignment As New ResourceAssignment(task, rsc)
 8    assignment.Start = DateTime.Parse("18-Aug-2009 8:00 AM" )
 9    assignment.Finish = DateTime.Parse("18-Aug-2009 5:00 PM" )
10    assignment.Uid = 1
11    project.RootTask = tskRoot
12    project.RootTask.Children.Add(task)
13    project.Resources.Add(res)
14    project.ResourceAssignments.Add(assignment)
15    project.Save("project.xml", SaveFileFormat.XML)

New Aspose.Tasks for .NET 8.x Approach

1    Project project = new Project();
2    Task task = project.RootTask.Children.Add("Task");
3    Resource rsc = project.Resources.Add("Rsc");
4    rsc.Set(Rsc.StandardRate, 10);
5    rsc.Set(Rsc.OvertimeRate, 15);
6    ResourceAssignment assignment = project.ResourceAssignments.Add(task, rsc);
7    assignment.Set(Assn.Start,DateTime.Parse("18-Aug-2009 8:00 AM" ));
8    assignment.Set(Assn.Finish, DateTime.Parse("18-Aug-2009 5:00 PM" ));
9    project.Save("ResourceAssignments.xml", SaveFileFormat.XML);
1    Dim project As New Project()
2    Dim task As Task = project.RootTask.Children.Add("Task")
3    Dim rsc As Resource = project.Resources.Add("Rsc")
4    rsc.[Set](Rsc.StandardRate, 10)
5    rsc.[Set](Rsc.OvertimeRate, 15)
6    Dim assignment As ResourceAssignment = project.ResourceAssignments.Add(task, rsc)
7    assignment.Set(Assn.Start,DateTime.Parse("18-Aug-2009 8:00 AM"))
8    assignment.Set(Assn.Finish, DateTime.Parse("18-Aug-2009 5:00 PM" ) project.Save("ResourceAssignments.xml", SaveFileFormat.XML))

Fazit

Die Migration zu Aspose.Tasks für .NET 8.0.0+ umfasst:

Durch die Einhaltung dieser aktualisierten Muster ist Ihr Projekt mit der neuesten Version von Aspose.Tasks kompatibel und profitiert von verbesserter Konsistenz und Flexibilität.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.