Redmine'deki Projeleri Yönetmek için Açık Kaynak .NET Proje Yönetimi API'si

Önde gelen C# .NET Proje Yönetim Kütüphanesi, Geliştiricilerin Proje Dosyalarını MPP, MPT, XML, XER, PMXML ve daha birçok formata Oluşturmasına, Okumasına, Manipüle Etmesine ve Dönüştürmesine olanak tanır.

MPXJ.NET nedir?

Proje verilerini yönetmek, genellikle Microsoft Project, Primavera P6 ve diğer araçların sunduğu çok sayıda dosya formatıyla mücadele etmeyi gerektirir. Tek bir platforma bağlı kalmadan proje verilerini programlı olarak okuyup, yazıp ve manipüle etmek isteyen bir .NET geliştiricisiyseniz, MPXJ.NET aradığınız güçlü, açık kaynaklı kütüphanedir. Kütüphane, yeni projeler oluşturma, mevcut proje dosyalarını okuma, formatlar arasında dönüştürme, takvim verilerini manipüle etme, kaynaklar ve atamalarla çalışma gibi proje yönetimi dosyalarıyla çalışmak için çeşitli önemli özellikler içerir.

MPXJ.NET, Java kütüphanesi MPXJ'nin (Jon Iles tarafından yönetilmektedir) etrafında bir açık kaynak .NET sarmalayıcısıdır. .NET geliştiricilerine—C#, VB.NET vb.—idiomatik C# tipleri ve geleneklerini kullanarak proje‑takvim dosyalarını okuma, yazma ve manipüle etme imkanı sağlar. MPXJ kütüphanesi, MPP, MPX, MSPDI XML, XER, P6 veritabanları, Planner XML gibi birçok takvim ve proje formatını destekler. MPXJ aslında Java tabanlı olmasına rağmen, MPXJ.Net onu sarmalar ve C# geleneklerini (Java getter/setter'ları yerine özellikler; .NET adlandırma kuralları) sunar, böylece .NET kodunda doğal bir kullanım sağlar. İster bir kurumsal portföy için veri topluyor olun, takvimlerde kalite kontrolleri yapıyor olun, ister CRM'niz ile PMO araçlarınız arasında bir köprü kuruyor olun, MPXJ.Net ihtiyacınız olan güvenilir, yüksek performanslı temeli sunar.

Previous Next

MPXJ.NET ile Başlarken

MPXJ.NET'i kurmanın önerilen yolu NuGet üzerinden yapmaktır. Sorunsuz bir kurulum için lütfen aşağıdaki komutları kullanın.

NuGet üzerinden MPXJ.NET'i Kurun

NuGet\Install-Package MPXJ.Net -Version 14.5.2

Doğrudan GitHub sayfasından indirebilirsiniz.

.NET üzerinden Projeler Oluşturun ve Manipüle Edin

Açık kaynak MPXJ.NET, .NET uygulamaları içinde proje dosyalarını işlemek için birkaç önemli özellik sağlar. Okumanın ötesinde, sıfırdan yeni proje dosyaları oluşturabilirsiniz: proje özelliklerini (başlık, yazar, başlangıç tarihi) tanımlayın, takvimler ve istisnalar ekleyin, görevleri (süreler, başlangıç tarihleri, sayısal alanlar) ekleyin, kaynakları ve atamaları ekleyin, bağımlılıklar oluşturun (görev A, görev B'den önce gelir), ve ardından MS Project veya diğer araçlar tarafından açılabilen bir dosya formatına (ör. MSPDI veya MPX) kaydedin. İşte .NET uygulamaları içinde yeni bir proje oluşturmayı gösteren basit bir örnek.

Yeni Bir Proje Nasıl Oluşturulur ve .NET Kütüphanesi ile XML Formatında Yazılır?

using Net.Sf.Mpxj;
using Net.Sf.Mpxj.Write;
using System;

// Create a new, empty project file
ProjectFile project = new ProjectFile();

// Set basic project properties
project.Name = "My New MPXJ-Generated Project";
project.StartDate = DateTime.Now;

// Add tasks
Task task1 = project.AddTask();
task1.Name = "Task 1";
task1.Duration = project.GetDuration(8, TimeUnit.Hours); // 1 day
task1.Start = DateTime.Now;

Task task2 = project.AddTask();
task2.Name = "Task 2 (Child of Task 1)";
task2.Duration = project.GetDuration(16, TimeUnit.Hours); // 2 days
task2.Start = DateTime.Now.AddDays(1);
// Make task2 a child of task1 by setting the outline level
task2.OutlineLevel = 1;

// Create a writer for the desired output format
ProjectWriter writer = new MicrosoftProjectWriter();

try
{
    // Write the project to an XML file (compatible with MS Project)
    writer.Write(project, "C:\\Projects\\MyNewProject.xml");
    Console.WriteLine("Project file written successfully!");
}
catch (Exception ex)
{
    Console.WriteLine($"Failed to write file: {ex.Message}");
}

C# üzerinden Evrensel Proje Dosyası Okuma

MPXJ.NET kütüphanesinin temel gücü, basit ve tutarlı bir API ile çok sayıda formatı yükleyip okuyabilme yeteneğidir. Kütüphane, dosyanın uzantısı ve içeriğine göre dosya formatını otomatik olarak algılamayı destekler. Read yöntemi, görevler, kaynaklar ve atamalar gibi diğer tüm proje varlıkları için kök konteyner olan bir ProjectFile nesnesi döndürür. Bu basit desen, bir XER dosyası, bir XML dosyası veya başka herhangi bir desteklenen format için aynı şekilde çalışır. Aşağıdaki örnek, bunu nasıl kolayca yapabileceğinizi gösterir.

MPP Proje Dosyası .NET API'si ile Nasıl Yüklenir ve Okunur?

using Net.Sf.Mpxj;
using Net.Sf.Mpxj.Read;

// Create a ProjectReader instance.
// The UniversalProjectReader intelligently determines the file type.
ProjectReader reader = new UniversalProjectReader();

try
{
    // Read the project file. This one line of code is all you need.
    ProjectFile project = reader.Read("C:\\Projects\\MySchedule.mpp");

    // Now you have access to all project data!
    Console.WriteLine($"Project Name: {project.Name}");
    Console.WriteLine($"Start Date: {project.StartDate}");
}
catch (Exception ex)
{
    Console.WriteLine($"Failed to read file: {ex.Message}");
}

           

.NET API ile Proje Dosyası Dönüştürme

Açık kaynak MPXJ.NET, .NET uygulamaları içinde proje dosyalarını diğer destek dosya formatlarına dönüştürmek için tam destek içerir. Çoklu format kapasitesi sayesinde, MPXJ.NET genellikle .NET uygulamaları içinde proje dosyalarını bir formattan diğerine dönüştürmek için kullanılır. Örneğin: .MPP dosyasını okuyun, ardından .MPX veya .MSPDI ya da hatta XER/PMXML (destek durumuna bağlı olarak) olarak yazın. README, dönüştürme örneği sağlar.

.NET Uygulamalarında Proje Dosyası Nasıl Okunur ve Dönüştürülür?

using System;
using MPXJ.Net;

namespace ConvertProject
{
    class Program
    {
        static void Main(string[] args)
        {
            string input = "LegacyProject.mpp";
            string output = "ConvertedProject.mpx";

            // Read using universal reader
            var proj = new UniversalProjectReader().Read(input);

            // Write using universal writer to MPX format
            new UniversalProjectWriter(FileFormat.MPX).Write(proj, output);

            Console.WriteLine($"Converted {input} → {output}");
        }
    }
}
           

Proje Görevlerine ve Hiyerarşisine Erişme

Projeler görevlerden oluşur ve MPXJ.NET, tüm İş Kırılım Yapısını (WBS) dolaşmanıza olanak tanır. Kütüphane, proje görevlerini ve verilerini yönetmek için çeşitli özellikler destekler; örneğin projedeki tüm görevlerin listelenmesi, görev özetinin görüntülenmesi, görev Süresi, Başlangıç ve Bitiş tarihleri, Görevlerin Tamamlanma Yüzdesi ve daha fazlası. Aşağıdaki örnek, geliştiricilerin .NET komutlarıyla tüm görevler üzerinde nasıl döngü yapabileceğini gösterir.

C# API'si ile Projenin Tüm Görevleri Nasıl Dolaşılır?

using Net.Sf.Mpxj;

// ... (Assume 'project' is a loaded ProjectFile object)

Console.WriteLine("Tasks in the project:");
foreach (Task task in project.Tasks)
{
    // Calculate the indentation for a hierarchical view
    string indent = new string(' ', task.OutlineLevel * 2);

    Console.WriteLine($"{indent}ID: {task.ID}, Name: {task.Name}, " +
                      $"Duration: {task.Duration}, " +
                      $"Start: {task.Start}, Finish: {task.Finish}");

    // Access specific properties
    if (task.PercentageComplete != null && task.PercentageComplete > 0)
    {
        Console.WriteLine($"{indent}  -> % Complete: {task.PercentageComplete}");
    }
}
           
 Türkçe