Microsoft Project, proje yöneticilerinin projeleri verimli bir şekilde yönetmesini kolaylaştıran popüler bir proje yönetimi yazılımıdır. Yöneticilerin görevler ve kaynaklar oluşturmasına, kaynaklara görevler atamasına, projenin ilerlemesini izlemesine, bütçeyi yönetmesine ve projeyle ilgili diğer işlemleri gerçekleştirmesine olanak tanır. MS Project dosyalarını programlı olarak oluşturmak ve yönetmek için Microsoft, MS Office Otomasyonu sağlar. Ancak, diğer eksiklikler ile birlikte, MS Office’i yüklemenizi gerektirir. Bu boşluğu doldurmak için Aspose devreye girerek size .NET uygulamaları için Aspose.Tasks for .NET olarak bir MS Project otomasyon çözümü sunar.

Aspose.Tasks for .NET, C# veya VB.NET kullanarak programlı olarak MS Project dosyaları (.mpp/.xml) oluşturmanıza izin veren, zengin özelliklere sahip bir API’dir. Ayrıca görevler, kaynaklar ve takvimlerle çalışmak için çeşitli özellikler sunar. Bu makalede, MS Project dosyaları oluşturmak ve C# kullanarak görevler ve kaynaklarla çalışmak için Aspose.Tasks for .NET’i nasıl kullanacağınızı göstereceğim. Makalenin geri kalanı aşağıdaki bölümlere ayrılmıştır.

C# kullanarak MS Proje Dosyaları oluşturun

MPP, MS Project dosyaları için kullanılan Microsoft’un tescilli dosya biçimidir. Ancak, proje verilerini farklı uygulamalar arasında paylaşmak için XML dosyalarında da tutabilirsiniz. Sıfırdan yeni bir proje oluşturmak basit bir iştir ve aşağıdaki adımlar izlenerek yapılabilir:

Aşağıdaki kod örnekleri, C# kullanarak MS Project dosyalarının nasıl oluşturulacağını gösterir.

MS Proje Dosyalarını MPP Olarak Kaydet

// Yeni bir proje oluştur
Project project = new Project();

// .mpp dosyası olarak kaydedin
project.Save("New Project.mpp", SaveFileFormat.MPP);

MS Proje Dosyalarını XML Olarak Kaydet

// Yeni bir proje oluştur
Project project = new Project();

// .xml dosyası olarak kaydedin
project.Save("EmptyProjectSaveXML_out.xml", SaveFileFormat.XML);

C# kullanarak MS Proje Dosyalarına Görevler Ekleme

Boş MS Project dosyası, görevler ve kaynaklar olmadan işe yaramaz. Öyleyse, bir projeye görevlerin nasıl oluşturulacağını ve ekleneceğini görelim. Bir görev, tek bir görev veya içinde bir grup alt görev içeren özet görev olabilir. Aşağıdakiler, bir MS Project dosyasına görev ekleme adımlarıdır.

  • Project nesnesini oluşturun ve başlatın.
  • Project.RootTask.Children.Add(string) yöntemini kullanarak projenin Görevler koleksiyonuna yeni bir özet görev ekleyin.
  • Task.Children.Add(string) yöntemini kullanarak özet göreve bir alt görev ekleyin.
  • Project.Save() yöntemini kullanarak projeyi kaydedin.

Aşağıdaki kod örneği, C# kullanarak MS Project dosyalarına görevlerin nasıl oluşturulacağını ve ekleneceğini gösterir.

// Yeni bir proje oluştur
Project project = new Project();

// Görev ve alt görev ekle
Task task = project.RootTask.Children.Add("Summary1");
Task subtask = task.Children.Add("Subtask1");

// Dosyayı kaydet
project.Save("CreateTasks_out.xml", SaveFileFormat.XML);

Aşağıdaki kod örneği, görevlerin süre, başlangıç tarihi/saati vb. gibi farklı özelliklerinin nasıl ayarlanacağını gösterir.

// proje oluştur
Project project = new Project();

// Görev ekleyin ve görev özelliklerini ayarlayın
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# kullanarak MS Proje Dosyalarına Kaynak Ekleme

Kaynaklar, bir projedeki görevleri gerçekleştirmesi beklenen varlıklardır. Bu nedenle, üzerinde çalışacak kaynaklar olmadan bir proje mümkün olmazdı. Öyleyse, bir projeye nasıl kaynak oluşturup ekleyeceğinizi kontrol edelim. Aşağıdakiler, bir MS Project dosyasına kaynak ekleme adımlarıdır.

  • Project sınıfını kullanarak yeni bir proje oluşturun.
  • Project.Resources.Add(string) yöntemini kullanarak projenin Resources koleksiyonuna yeni bir kaynak ekleyin.
  • Project.Save() yöntemini kullanarak projeyi kaydedin.

Aşağıdaki kod örneği, C# kullanarak bir MS Project dosyasına nasıl kaynak ekleneceğini gösterir.

// proje oluştur
Project project = new Project();

// Kaynak ekle
Resource resource = project.Resources.Add("Rsc");

// Projeyi kaydet
project.Save("CreateResources_out.xml", SaveFileFormat.XML);

Aşağıdaki kod örneği, bir kaynağın başlangıç tarihi/saati, türü vb. gibi özelliklerini ayarlar.

// proje oluştur
Project project = new Project();

// Kaynak ekle
Resource resource = project.Resources.Add("Rsc");

// Projeyi kaydet
project.Save("CreateResources_out.xml", SaveFileFormat.XML);

C# kullanarak bir Projede Kaynağa Görev Atama

Projeye görev ve kaynak eklemeyi tamamladıktan sonra, hangi görevin hangi kaynak tarafından gerçekleştirileceğini belirtebilirsiniz. Böylece her bir kaynağa görev(ler) atayacaksınız. Aşağıda, bir Projedeki kaynaklara görev atama adımları yer almaktadır.

  • Project sınıfını kullanarak bir proje oluşturun veya yükleyin.
  • Projeye yeni kaynaklar ekleyin ve tarih formatı, başlangıç tarihi gibi özelliklerini ayarlayın.
  • Projeye yeni görevler ekleyin ve başlangıç tarihi/saati, süre vb. gibi özelliklerini ayarlayın.
  • Görevi ve ilgili kaynağını Project.ResourceAssignments koleksiyonuna ekleyerek görev atamasını gerçekleştirin.
  • Project.Save() yöntemini kullanarak projeyi kaydedin.

Aşağıda, bir MS Project dosyasında görevlerin nasıl oluşturulacağına ve kaynaklara atanacağına ilişkin eksiksiz kod örneği yer almaktadır.

// proje oluştur
Project project = new Project("New Project.mpp")
{
    CalculationMode = CalculationMode.Automatic
};

// Özellikleri ayarla
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);

// Kaynak ekle
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");

// Görev ekle
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));

// Görev atayın
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));

// beklenen MPP'yi tamamen eşleştirmek için
assignment2.Set(Asn.WorkContour, WorkContourType.Contoured);
task3.Set(Tsk.IsManual, new NullableBool(true));
task1.Set(Tsk.IsManual, new NullableBool(true));

// Projeyi kaydet
project.Save("Assignment_Dates.mpp", SaveFileFormat.MPP);

C# kullanarak bir Projeye Takvim Ekleme

Takvimler ayrıca, projenin zamanlamasını tanımlamak için kullanılan projelerin ana varlıklarından biridir. Takvim, proje yöneticilerinin bir proje için bir zaman çizelgesi oluşturmasını mümkün kılar. Bir projeye takvim ekleme adımları aşağıdadır.

  • Project sınıfını kullanarak bir proje oluşturun veya yükleyin.
  • Project.Calendars koleksiyonuna yeni Takvim ekleyin.
  • Takvim nesnesini kullanarak zamanlamayı oluşturun.
  • Projeyi kaydedin.

Aşağıdaki kod örneği, C# kullanarak bir Projeye nasıl takvim ekleneceğini gösterir.

// Bir proje örneği oluşturun
Project project = new Project();

// Takvimi Tanımla
Calendar cal = project.Calendars.Add("Calendar1");

// Varsayılan zamanlamalarla pazartesiden perşembeye çalışma günleri ekleyin
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));

// Cuma gününü kısa çalışma günü olarak ayarla
WeekDay myWeekDay = new WeekDay(DayType.Friday);

// Çalışma süresini ayarlar. DateTime'ın yalnızca zaman kısmı önemlidir
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);

// Projeyi kaydet
project.Save("Project_DefineCalendarWeekdays_out.xml", SaveFileFormat.XML);

İndir veya Yükle

Aspose.Tasks for .NET DLL’yi indirebilir veya NuGet kullanarak projenize kurabilirsiniz.

Aspose.Tasks for .NET’i Ücretsiz Deneyin

Aspose, ürünlerini deneme sınırlaması olmadan denemek için ücretsiz bir geçici lisans sunar. buradan bir tane alabilirsiniz.

Ayrıca bakınız