Aspose.tasks vs VSTO로 새로운 작업을 추가합니다
Microsoft Project (MPP/XML) 파일로 작업하는 동안 프로젝트에 새로운 작업을 추가해야합니다. 이 기사에서는 .NET 응용 프로그램에 MPP 파일을로드하고 기존 VSTO Interop API 및 .NET 라이브러리의 최신 ASPOSE.TASK를 사용하여 새로운 작업을 추가하는 방법을 보여줍니다.
개요
자동으로 작업을 관리하는 기능은 자동화 된 프로젝트 계획 워크 플로우에서 필수적입니다. 이 기사는 두 가지 접근 방식을 사용하여 새로운 작업을 Microsoft 프로젝트 파일에 삽입하는 방법을 보여줍니다.
- Microsoft Office Automation (VSTO) : 설치된 Microsoft Project Application 및 COM Interop에 의존합니다.
- aspose.tasks for .NET : Microsoft 프로젝트를 설치할 필요가없는 독립형 .NET 라이브러리.
두 가지 예 모두 구문, 종속성 및 프로그래밍 모델의 차이점을 명확하게 이해하는 데 도움이되는 동일한 시나리오 (` “task1”«이라는 단일 작업을 추가하는 것과 동일한 시나리오를 보여줍니다.
VSTO를 사용하여 작업을 추가하십시오
다음 코드는 VSTO (Office 용 Visual Studio Tools)를 사용하여 기존.mpp
파일에 새 작업을 추가하는 방법을 보여줍니다. 이 접근법은 COM Interop에 따라 달라지며 Microsoft 프로젝트를 시스템에 설치하고 적절하게 라이센스해야합니다.
1Microsoft.Office.Interop.MSProject.Application projectApplication = new Application();
2
3object missingValue = System.Reflection.Missing.Value;
4
5projectApplication.FileOpenEx(@"C:\Project1.mpp",
6 missingValue, missingValue, missingValue, missingValue,
7 missingValue, missingValue, missingValue, missingValue,
8 missingValue, missingValue, PjPoolOpen.pjPoolReadOnly,
9 missingValue, missingValue, missingValue, missingValue,
10 missingValue);
11
12Microsoft.Office.Interop.MSProject.Project project = projectApplication.ActiveProject;
13
14Microsoft.Office.Interop.MSProject.Task task;
15task = project.Tasks.Add("Task1", 1);
16
17task.Start = "8/23/2012";
18task.Duration = 3 * 8 * 60; // Duration in minutes (3 working days * 8 hours/day * 60 minutes)
19task.Text1 = "Task1";
20
21projectApplication.FileCloseAll(Microsoft.Office.Interop.MSProject.PjSaveType.pjSave);
Notes
- Duration must be specified in minutes, which is less intuitive compared to using time units directly.
- The API requires careful handling of optional parameters (
Missing.Value
) and COM resource cleanup. - The project file must be opened via
FileOpenEx
and explicitly saved and closed usingFileCloseAll
.
Add a Task Using Aspose.Tasks for .NET
In contrast, the code below shows how to accomplish the same task using Aspose.Tasks for .NET. This API works independently of Microsoft Project and is ideal for web applications, services, and containerized environments.
1Project project = new Project("New Project.mpp");
2
3Task task = project.RootTask.Children.Add("Task1");
4task.Set(Tsk.ActualStart, DateTime.Parse("23-Aug-2012"));
5
6// Set duration in hours
7task.Set(Tsk.Duration, project.GetDuration(24, TimeUnitType.Hour));
8task.Set(Tsk.DurationFormat, TimeUnitType.Day);
9
10project.Save("AddNewTask_out.xml", SaveFileFormat.XML);
주요 내용
- 작업은
RootTask.Children
아래의 깔끔한 객체 모델을 사용하여 생성됩니다. - 기간은
TimeUnitType
을 사용하여 시간, 일 또는 기타 단위로 지정할 수 있습니다. Set
메서드는 작업 속성에 대해 형식이 안전하고 필드별 업데이트를 제공합니다.- COM interop 또는 Office 설치가 필요하지 않습니다. 코드는 크로스 플랫폼에서 실행됩니다.
요약
Aspect | VSTO/Interop | Aspose.Tasks for .NET |
---|---|---|
MS Project 필요 | ✅ 예 | ❌ 아니요 |
종속성 유형 | COM (Microsoft.Office.Interop.MSProject) | Pure .NET |
크로스 플랫폼 지원 | ❌ Windows 전용 | ✅ Windows, Linux, macOS (.NET 사용) |
배포 적합성 | ⚠ 데스크톱/서버 전용 | ✅ 웹, 컨테이너, 서버리스 |
코드 복잡성 | ⚠ 높음 (장황하고 보일러플레이트 사용 많음) | ✅ 간단하고 표현력 좋음 |
Aspose.Tasks는 Microsoft Project 형식 작업을 위한 현대적이고 확장 가능하며 유지 관리가 가능한 솔루션을 제공합니다. VSTO에서 마이그레이션하면 배포 유연성이 향상되고 안정성이 향상되며 개발자 친화적인 API 환경을 이용할 수 있습니다.
계속 알아보려면 다음 페이지를 확인하세요.