Microsoft Project는 프로젝트 관리자가 프로젝트를 보다 쉽게 효율적으로 관리할 수 있도록 해주는 널리 사용되는 프로젝트 관리 소프트웨어입니다. 이를 통해 관리자는 작업 및 리소스를 생성하고, 리소스에 작업을 할당하고, 프로젝트 진행 상황을 추적하고, 예산을 관리하고, 기타 프로젝트 관련 작업을 수행할 수 있습니다. 프로그래밍 방식으로 MS 프로젝트 파일을 만들고 관리하기 위해 Microsoft는 MS Office 자동화를 제공합니다. 그러나 기타 결함과 함께 MS Office를 설치해야 합니다. 이 격차를 메우기 위해 Aspose는 Aspose.Tasks for .NET으로 .NET 애플리케이션을 위한 MS 프로젝트 자동화 솔루션을 제공합니다.

.NET용 Aspose.Tasks는 C# 또는 VB.NET을 사용하여 프로그래밍 방식으로 MS 프로젝트 파일(.mpp/.xml)을 생성할 수 있는 기능이 풍부한 API입니다. 또한 작업, 리소스 및 캘린더 작업을 위한 다양한 기능을 제공합니다. 이 기사에서는 .NET용 Aspose.Tasks를 사용하여 MS 프로젝트 파일을 만들고 C#을 사용하여 작업 및 리소스를 사용하는 방법을 보여줍니다. 기사의 나머지 부분은 다음 섹션으로 나뉩니다.

C#을 사용하여 MS 프로젝트 파일 만들기

MPP는 MS Project 파일에 사용되는 Microsoft의 독점 파일 형식입니다. 그러나 프로젝트 데이터를 XML 파일에 보관하여 다른 응용 프로그램 간에 공유할 수도 있습니다. 처음부터 새 프로젝트를 만드는 것은 간단한 작업이며 다음 단계를 사용하여 수행할 수 있습니다.

다음 코드 샘플은 C#을 사용하여 MS 프로젝트 파일을 만드는 방법을 보여줍니다.

MS 프로젝트 파일을 MPP로 저장

// 새 프로젝트 만들기
Project project = new Project();

// .mpp 파일로 저장
project.Save("New Project.mpp", SaveFileFormat.MPP);

MS 프로젝트 파일을 XML로 저장

// 새 프로젝트 만들기
Project project = new Project();

// .xml 파일로 저장
project.Save("EmptyProjectSaveXML_out.xml", SaveFileFormat.XML);

C#을 사용하여 MS 프로젝트 파일에 작업 추가

빈 MS 프로젝트 파일은 작업과 리소스가 없으면 쓸모가 없습니다. 이제 프로젝트에 작업을 만들고 추가하는 방법을 살펴보겠습니다. 작업은 하위 작업 그룹을 포함하는 단일 작업 또는 요약 작업일 수 있습니다. 다음은 MS Project 파일에 작업을 추가하는 단계입니다.

  • Project 개체를 생성하고 초기화합니다.
  • Project.RootTask.Children.Add(string) 메서드를 사용하여 프로젝트의 Tasks 컬렉션에 새 요약 작업을 추가합니다.
  • Task.Children.Add(string) 메서드를 사용하여 요약 작업에 하위 작업을 추가합니다.
  • Project.Save() 메서드를 사용하여 프로젝트를 저장합니다.

다음 코드 샘플은 C#을 사용하여 MS 프로젝트 파일에 작업을 만들고 추가하는 방법을 보여줍니다.

// 새 프로젝트 만들기
Project project = new Project();

// 작업 및 하위 작업 추가
Task task = project.RootTask.Children.Add("Summary1");
Task subtask = task.Children.Add("Subtask1");

// 파일을 저장
project.Save("CreateTasks_out.xml", SaveFileFormat.XML);

다음 코드 샘플은 기간, 시작 날짜/시간 등과 같은 작업의 다양한 속성을 설정하는 방법을 보여줍니다.

// 프로젝트 생성
Project project = new Project();

// 작업 추가 및 작업 속성 설정
Task task = project.RootTask.Children.Add("Task1");
task.Set(Tsk.Start, project.RootTask.Get(Tsk.Start).AddDays(1));
task.Set(Tsk.Name, "new name");

C#을 사용하여 MS 프로젝트 파일에 리소스 추가

리소스는 프로젝트에서 작업을 수행해야 하는 엔터티입니다. 따라서 프로젝트에 작업할 자원이 없으면 프로젝트가 불가능합니다. 그럼 프로젝트에 리소스를 생성하고 추가하는 방법을 알아보겠습니다. 다음은 MS Project 파일에 리소스를 추가하는 단계입니다.

  • Project 클래스를 사용하여 새 프로젝트를 생성합니다.
  • Project.Resources.Add(string) 메서드를 사용하여 프로젝트의 Resources 컬렉션에 새 리소스를 추가합니다.
  • Project.Save() 메서드를 사용하여 프로젝트를 저장합니다.

다음 코드 샘플은 C#을 사용하여 MS 프로젝트 파일에 리소스를 추가하는 방법을 보여줍니다.

// 프로젝트 생성
Project project = new Project();

// 리소스 추가
Resource resource = project.Resources.Add("Rsc");

// 프로젝트를 저장하다
project.Save("CreateResources_out.xml", SaveFileFormat.XML);

다음 코드 샘플은 시작 날짜/시간, 유형 등과 같은 리소스의 속성을 설정합니다.

// 프로젝트 생성
Project project = new Project();

// 리소스 추가
Resource resource = project.Resources.Add("Rsc");

// 프로젝트를 저장하다
project.Save("CreateResources_out.xml", SaveFileFormat.XML);

C#을 사용하여 프로젝트의 리소스에 작업 할당

프로젝트에 작업 및 리소스 추가를 완료하면 어떤 작업이 어떤 리소스에 의해 수행되는지 지정할 수 있습니다. 따라서 각 리소스에 작업을 할당합니다. 다음은 프로젝트의 리소스에 작업을 할당하는 단계입니다.

  • Project 클래스를 사용하여 프로젝트를 생성하거나 로드합니다.
  • 프로젝트에 새 리소스를 추가하고 날짜 형식, 시작 날짜 등과 같은 속성을 설정합니다.
  • 프로젝트에 새 작업을 추가하고 시작 날짜/시간, 기간 등과 같은 속성을 설정합니다.
  • 작업 및 해당 리소스를 Project.ResourceAssignments 컬렉션에 추가하여 작업 할당을 수행합니다.
  • Project.Save() 메서드를 사용하여 프로젝트를 저장합니다.

다음은 MS 프로젝트 파일에서 작업을 만들고 리소스에 할당하는 방법의 전체 코드 샘플입니다.

// 프로젝트 생성
Project project = new Project("New Project.mpp")
{
    CalculationMode = CalculationMode.Automatic
};

// 속성 설정
project.Set(Prj.DateFormat, DateFormat.DateDddMmDdYy);
project.Set(Prj.StartDate, new DateTime(2019, 9, 16, 9, 0, 0));
project.Set(Prj.NewTasksAreManual, false);
project.Set(Prj.ActualsInSync, false);

// 리소스 추가
Resource workResource = project.Resources.Add("Servente (Work)");
workResource.Set(Rsc.Name, "Servente (Work)");
workResource.Set(Rsc.Initials, "S");
workResource.Set(Rsc.Type, ResourceType.Work);
workResource.Set(Rsc.StandardRateFormat, RateFormatType.Hour);
workResource.Set(Rsc.Code, "1503");

Resource materialResource = project.Resources.Add("Tijolo (Material)");
materialResource.Set(Rsc.Name, "Tijolo (Material)");
materialResource.Set(Rsc.Initials, "T");
materialResource.Set(Rsc.Type, ResourceType.Material);
materialResource.Set(Rsc.StandardRateFormat, RateFormatType.MaterialResourceRate);
materialResource.Set(Rsc.Code, "21341");

// 작업 추가
Task task1 = project.RootTask.Children.Add("Task - 01");
task1.Set(Tsk.IsRollup, new NullableBool(true));
task1.Set(Tsk.IsPublished, new NullableBool(false));
Task task2 = task1.Children.Add("Task - 01.01");
task2.Set(Tsk.IsRollup, new NullableBool(true));
task2.Set(Tsk.IsPublished, new NullableBool(false));
Task task3 = task2.Children.Add("Task - 01.01.001");
task3.Set(Tsk.IsEstimated, new NullableBool(false));
task3.Set(Tsk.Start, new DateTime(2019, 9, 16, 9, 0, 0));
task3.Set(Tsk.Duration, project.GetDuration(10, TimeUnitType.Day));
task3.Set(Tsk.Work, project.GetDuration(10, TimeUnitType.Day));
task3.Set(Tsk.IsRollup, new NullableBool(true));
task3.Set(Tsk.IsPublished, new NullableBool(false));

// 작업 할당
ResourceAssignment assignment1 = project.ResourceAssignments.Add(task3, materialResource);
assignment1.Set(Asn.Delay, project.GetDuration(40, TimeUnitType.Hour));
assignment1.Set(Asn.Start, new DateTime(2019, 9, 23, 9, 0, 0));
assignment1.Set(Asn.Finish, new DateTime(2019, 9, 27, 18, 0, 0));
ResourceAssignment assignment2 = project.ResourceAssignments.Add(task3, workResource);
assignment2.Set(Asn.Work, project.GetDuration(56, TimeUnitType.Hour));
assignment2.Set(Asn.Start, new DateTime(2019, 9, 16, 9, 0, 0));
assignment2.Set(Asn.Finish, new DateTime(2019, 9, 24, 18, 0, 0));

// 예상 MPP와 완전히 일치
assignment2.Set(Asn.WorkContour, WorkContourType.Contoured);
task3.Set(Tsk.IsManual, new NullableBool(true));
task1.Set(Tsk.IsManual, new NullableBool(true));

// 프로젝트를 저장하다
project.Save("Assignment_Dates.mpp", SaveFileFormat.MPP);

C#을 사용하여 프로젝트에 캘린더 추가

달력은 또한 프로젝트 일정을 정의하는 데 사용되는 프로젝트의 주요 엔터티 중 하나입니다. 캘린더를 사용하면 프로젝트 관리자가 프로젝트의 타임라인을 만들 수 있습니다. 다음은 프로젝트에 캘린더를 추가하는 단계입니다.

  • Project 클래스를 사용하여 프로젝트를 생성하거나 불러옵니다.
  • Project.Calendars 컬렉션에 새 Calendar을 추가합니다.
  • Calendar 개체를 사용하여 일정을 만듭니다.
  • 프로젝트를 저장합니다.

다음 코드 샘플은 C#을 사용하여 프로젝트에 달력을 추가하는 방법을 보여줍니다.

// 프로젝트 인스턴스 만들기
Project project = new Project();

// 달력 정의
Calendar cal = project.Calendars.Add("Calendar1");

// 기본 타이밍으로 월요일부터 목요일까지 근무일 추가
cal.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Monday));
cal.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Tuesday));
cal.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Wednesday));
cal.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Thursday));
cal.WeekDays.Add(new WeekDay(DayType.Saturday));
cal.WeekDays.Add(new WeekDay(DayType.Sunday));

// 금요일을 짧은 근무일로 설정
WeekDay myWeekDay = new WeekDay(DayType.Friday);

// 작업 시간을 설정합니다. DateTime의 시간 부분만 중요합니다.
WorkingTime wt1 = new WorkingTime();
wt1.FromTime = new DateTime(1, 1, 1, 9, 0, 0, 0);
wt1.ToTime = new DateTime(1, 1, 1, 12, 0, 0, 0);
WorkingTime wt2 = new WorkingTime();
wt2.FromTime = new DateTime(1, 1, 1, 13, 0, 0, 0);
wt2.ToTime = new DateTime(1, 1, 1, 16, 0, 0, 0);
myWeekDay.WorkingTimes.Add(wt1);
myWeekDay.WorkingTimes.Add(wt2);
myWeekDay.DayWorking = true;
cal.WeekDays.Add(myWeekDay);

// 프로젝트를 저장하다
project.Save("Project_DefineCalendarWeekdays_out.xml", SaveFileFormat.XML);

다운로드 또는 설치

.NET DLL용 Aspose.Tasks를 다운로드하거나 NuGet을 사용하여 프로젝트에 설치할 수 있습니다.

.NET용 Aspose.Tasks를 무료로 사용해 보세요.

Aspose는 평가판 제한 없이 제품을 사용해 볼 수 있는 무료 임시 라이선스를 제공합니다. 여기에서 하나를 얻을 수 있습니다.

또한보십시오