Otwarta, darmowa API .NET do zarządzania projektami, obsługująca projekty w Redmine

Wiodąca biblioteka zarządzania projektami C# .NET umożliwia programistom tworzenie, odczytywanie, manipulowanie i konwertowanie plików projektów do innych formatów, takich jak MPP, MPT, XML, XER, PMXML i wiele innych.

Czym jest MPXJ.NET?

Zarządzanie danymi projektowymi często oznacza zmierzenie się z wieloma formatami plików pochodzącymi z narzędzi takich jak Microsoft Project, Primavera P6 i innych. Jeśli jesteś programistą .NET, który chce programowo odczytywać, zapisywać i manipulować danymi projektowymi bez uzależnienia od jednej platformy, MPXJ.NET jest potężną, otwarto‑źródłową biblioteką, której szukałeś. Biblioteka zawiera kilka ważnych funkcji pracy z plikami zarządzania projektami, takich jak tworzenie nowych projektów, odczytywanie istniejących plików projektów, konwertowanie między formatami, manipulowanie danymi harmonogramu, praca z zasobami i przydziałami, programowo.

MPXJ.NET jest otwarto‑źródłowym wrapperem .NET wokół biblioteki Java MPXJ (zarządzanej przez Jona Ilesa). Umożliwia programistom .NET — C#, VB.NET itp. — odczytywanie, zapisywanie i manipulowanie plikami harmonogramów projektów przy użyciu idiomatycznych typów i konwencji C#. Biblioteka MPXJ obsługuje wiele formatów harmonogramów i projektów, takich jak MPP, MPX, MSPDI XML, XER, bazy danych P6, Planner XML itp. Chociaż MPXJ pierwotnie opiera się na Javie, MPXJ.Net opakowuje ją i prezentuje konwencje C# (właściwości zamiast getterów/setterów Java; konwencje nazewnictwa .NET), dzięki czemu jest naturalna w kodzie .NET. Niezależnie od tego, czy agregujesz dane dla portfela przedsiębiorstwa, przeprowadzasz kontrole jakości harmonogramów, czy budujesz most między swoim CRM a narzędziami PMO, MPXJ.Net zapewnia niezawodną, wysokowydajną podstawę, której potrzebujesz.

Previous Next

Rozpoczęcie pracy z MPXJ.NET

Zalecanym sposobem instalacji MPXJ.NET jest użycie NuGet. Proszę użyć poniższych poleceń, aby przeprowadzić płynną instalację.

Zainstaluj MPXJ.NET za pomocą NuGet

NuGet\Install-Package MPXJ.Net -Version 14.5.2

Możesz pobrać go bezpośrednio ze strony GitHub

Tworzenie i manipulowanie projektami za pomocą .NET

Open source MPXJ.NET zapewnia kilka ważnych funkcji obsługi plików projektów w aplikacjach .NET. Poza odczytem możesz tworzyć nowe pliki projektów od podstaw: definiować właściwości projektu (tytuł, autor, data rozpoczęcia), dodawać kalendarze i wyjątki, dodawać zadania (z czasami trwania, datami rozpoczęcia, polami numerycznymi), dodawać zasoby i przydziały, tworzyć zależności (zadanie A poprzedza zadanie B), a następnie zapisywać w formacie pliku (np. MSPDI lub MPX), który może być otwarty w MS Project lub innych narzędziach. Oto prosty przykład, który demonstruje, jak stworzyć nowy projekt w aplikacjach .NET.

Jak utworzyć nowy projekt i zapisać go w formacie XML za pomocą biblioteki .NET?

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

Uniwersalne odczytywanie plików projektów za pomocą C#

Główną zaletą biblioteki MPXJ.NET jest jej zdolność do ładowania i odczytywania ogromnej liczby formatów przy użyciu prostego, spójnego API. Biblioteka zawiera wsparcie dla automatycznego wykrywania formatu pliku na podstawie jego rozszerzenia i zawartości. Metoda Read zwraca obiekt ProjectFile, który jest głównym kontenerem dla wszystkich innych elementów projektu, takich jak zadania, zasoby i przydziały. Ten prosty wzorzec działa identycznie dla pliku XER, pliku XML lub dowolnego innego obsługiwanego formatu. Poniższy przykład pokazuje, jak wykonać to z łatwością.

Jak wczytać i odczytać plik projektu MPP przy użyciu API .NET?

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

           

Konwersja plików projektów za pomocą interfejsu API .NET

Open source MPXJ.NET zawiera pełne wsparcie dla konwertowania plików projektów na inne formaty plików w aplikacjach .NET. Dzięki swojej wieloformatowości, MPXJ.NET jest często używany do konwertowania plików projektów z jednego formatu na inny w aplikacjach .NET. Na przykład: odczytaj plik .MPP, a następnie zapisz jako .MPX lub .MSPDI lub nawet XER/PMXML (w zależności od wsparcia). README zawiera przykład konwersji.

Jak odczytać i przekonwertować plik projektu w aplikacjach .NET?

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

Dostęp do zadań projektowych i hierarchii

Projekty składają się z zadań, a MPXJ.NET umożliwia przeglądanie całej struktury podziału pracy (WBS). Biblioteka obsługuje różne funkcje związane z zarządzaniem zadaniami i danymi projektów, takie jak listowanie wszystkich zadań w projekcie, podgląd podsumowania zadań, czas trwania zadań, daty rozpoczęcia i zakończenia zadania, procent ukończenia zadania i wiele innych. Poniższy przykład pokazuje, jak programiści mogą iterować po wszystkich zadaniach przy użyciu poleceń .NET.

Jak iterować przez wszystkie zadania projektu przy użyciu API C#?

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