Redmine-də layihələri idarə etmək üçün Açıq Mənbəli .NET Layihə İdarəetmə API

Öncül C# .NET Layihə İdarəetmə Kitabxanası, İnkişafçılara Layihə Fayllarını Yaratmaq, Oxumaq, Manipulyasiya Etmək və MPP, MPT, XML, XER, PMXML kimi Digər Formatlara Çevirmək imkanı verir, və daha çox.

MPXJ.NET nədir?

Layihə məlumatlarını idarə etmək çox vaxt Microsoft Project, Primavera P6 və digər alətlərdən gələn çoxsaylı fayl formatları ilə mübarizə aparmağı tələb edir. Əgər siz .NET proqramçısı olaraq layihə məlumatlarını proqram vasitəsilə oxumaq, yazmaq və manipulyasiya etmək istəyirsinizsə və tək bir platformaya məhdudlaşmaq istəmirsinizsə, MPXJ.NET axtardığınız güclü, açıq mənbəli kitabxanadır. Kitabxana layihə idarəetmə faylları ilə işləmək üçün bir neçə vacib xüsusiyyətləri ehtiva edir, məsələn yeni layihələr yaratmaq, mövcud layihə fayllarını oxumaq, formatlar arasında çevirmək, cədvəl məlumatlarını manipulyasiya etmək, resurslar və təyinatlarla proqram vasitəsilə işləmək.

MPXJ.NET, Java kitabxanası MPXJ (Jon Iles tərəfindən idarə olunur) ətrafında açıq mənbəli .NET qabığıdır. Bu, .NET inkişafçılarının—C#, VB.NET və s.—layihə‑cədvəl fayllarını oxumağa, yazmağa və idarə etməyə imkan verir, idiomatik C# tipləri və konvensiyaları istifadə edərək. MPXJ kitabxanası MPP, MPX, MSPDI XML, XER, P6 verilənlər bazaları, Planner XML və s. kimi bir çox cədvəl və layihə formatlarını dəstəkləyir. MPXJ ilkin olaraq Java‑əsaslı olsa da, MPXJ.Net onu əhatə edir və C# konvensiyalarını (xüsusiyyətlər, Java getter/setter‑ləri yerinə; .NET adlandırma konvensiyaları) təqdim edir, beləliklə .NET kodunda təbii hiss olunur. Siz müəssisə portfeli üçün məlumatları toplamaq, cədvəllərdə keyfiyyət yoxlamaları aparmaq və ya CRM‑iniz ilə PMO‑nuzun alətləri arasında körpü qurmaq istəsəniz, MPXJ.Net sizə etibarlı, yüksək performanslı təməl təmin edir.

Previous Next

MPXJ.NET ilə Başlamaq

MPXJ.NET‑i quraşdırmağın tövsiyə olunan yolu NuGet vasitəsilədir. Zəhmət olmasa, problemsiz quraşdırma üçün aşağıdakı əmrlərdən istifadə edin.

NuGet vasitəsilə MPXJ.NET quraşdırın

NuGet\Install-Package MPXJ.Net -Version 14.5.2

Siz onu birbaşa GitHub səhifəsindən yükləyə bilərsiniz.

.NET vasitəsilə Layihələr Yaratmaq və Manipulyasiya Etmək

Açıq mənbəli MPXJ.NET .NET tətbiqlərində layihə fayllarını idarə etmək üçün bir neçə vacib xüsusiyyət təqdim edir. Oxumaqdan əlavə, sıfırdan yeni layihə faylları yarada bilərsiniz: layihə xüsusiyyətlərini (başlıq, müəllif, başlanğıc tarixi) təyin edin, təqvimlər və istisnalar əlavə edin, vəzifələri (müddətləri, başlanğıc tarixləri, rəqəm sahələri ilə) əlavə edin, resurslar və təyinatlar əlavə edin, asılılıqları yaradın (vəziyyət A, vəziyyət B‑dən əvvəl gəlir), və sonra fayl formatına (məsələn, MSPDI və ya MPX) yadda saxlayın ki, MS Project və ya digər alətlərlə açıla bilsin. Budur .NET tətbiqlərində yeni layihə yaratmağı nümayiş etdirən sadə bir nümunə.

Yeni layihə necə yaradılır və .NET kitabxanası vasitəsilə XML formatında necə 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# vasitəsilə Ümumi Layihə Faylı Oxumaq

MPXJ.NET kitabxanasının əsas gücü, sadə və tutarlı API ilə çoxsaylı formatları yükləmək və oxumaq qabiliyyətidir. Kitabxana faylın uzantısı və məzmununa əsaslanaraq fayl formatını avtomatik müəyyən etmək üçün dəstək daxildir. Read metodu ProjectFile obyektini qaytarır, bu da vəzifələr, resurslar və təyinatlar kimi digər bütün layihə obyektləri üçün kök konteynerdir. Bu sadə nümunə XER faylı, XML faylı və ya digər dəstəklənən formatlar üçün eyni şəkildə işləyir. Aşağıdakı nümunə bunun asanlıqla necə həyata keçiriləcəyini göstərir.

.NET API vasitəsilə MPP layihə faylını necə yükləmək və oxumaq?

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 vasitəsilə Layihə Fayllarının Çevrilməsi

Açıq mənbəli MPXJ.NET .NET tətbiqləri daxilində layihə fayllarını digər dəstək fayl formatlarına çevirmək üçün tam dəstək təmin edir. Çoxformatlı qabiliyyəti sayəsində MPXJ.NET tez-tez .NET tətbiqləri daxilində layihə fayllarını bir formatdan digərinə çevirmək üçün istifadə olunur. Məsələn: .MPP faylını oxuyun, sonra .MPX və ya .MSPDI və hətta XER/PMXML (dəstəklənməsindən asılı olaraq) yazın. README çevirmə nümunəsi təqdim edir.

.NET tətbiqlərində layihə faylını necə oxumaq və çevirmək?

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}");
        }
    }
}
           

Layihə Tapşırıqlarına və Hiyerarxiyasına Giriş

Layihələr tapşırıqlardan ibarətdir və MPXJ.NET sizə tam İş Bölüşdürmə Strukturu (WBS) üzərində gəzinti imkanı verir. Kitabxana layihə tapşırıqları və məlumatları ilə işləmək üçün müxtəlif xüsusiyyətləri dəstəkləyir, məsələn, layihədəki bütün tapşırıqları siyahıya almaq, tapşırıqların icmalını göstərmək, tapşırığın Müddəti, Başlanğıc və Bitmə vaxtı, Tapşırığın Tamamlanma Faizi və daha çox. Aşağıdakı nümunə, inkişaf etdiricilərin .NET əmrləri ilə bütün tapşırıqları necə təkrarlaya biləcəyini göstərir.

C# API vasitəsilə bütün layihənin tapşırıqları üzərində necə iterasiya etmək?

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}");
    }
}
           
 Azəri