Open-Source .NET Projektmanagement‑API zur Verwaltung von Projekten in Redmine

Die führende C# .NET Projektmanagement-Bibliothek ermöglicht Entwicklern das Erstellen, Lesen, Manipulieren und Konvertieren von Projektdateien in andere Formate wie MPP, MPT, XML, XER, PMXML und viele mehr.

Was ist MPXJ.NET?

Die Verwaltung von Projektdaten bedeutet oft, sich mit einer Vielzahl von Dateiformaten aus Tools wie Microsoft Project, Primavera P6 und anderen auseinanderzusetzen. Wenn Sie ein .NET‑Entwickler sind, der Projektdaten programmgesteuert lesen, schreiben und manipulieren möchte, ohne an eine einzige Plattform gebunden zu sein, ist MPXJ.NET die leistungsstarke, Open‑Source‑Bibliothek, nach der Sie gesucht haben. Die Bibliothek enthält mehrere wichtige Funktionen für die Arbeit mit Projektmanagement‑Dateien, wie das Erstellen neuer Projekte, das Lesen vorhandener Projektdateien, das Konvertieren zwischen Formaten, das Manipulieren von Terminplanungsdaten, das Arbeiten mit Ressourcen und Zuordnungen, programmgesteuert.

MPXJ.NET ist ein Open-Source .NET-Wrapper um die Java-Bibliothek MPXJ (verwaltet von Jon Iles). Er ermöglicht .NET-Entwicklern – C#, VB.NET usw. – das Lesen, Schreiben und Manipulieren von Projektzeitplan-Dateien mit idiomatischen C#-Typen und Konventionen. Die MPXJ-Bibliothek unterstützt viele Zeitplan- und Projektformate wie MPP, MPX, MSPDI XML, XER, P6-Datenbanken, Planner XML usw. Obwohl MPXJ ursprünglich Java-basiert ist, kapselt MPXJ.Net es ein und präsentiert C#-Konventionen (Eigenschaften statt Java-Getter/Setter; .NET-Namenskonventionen), sodass es sich in .NET-Code natürlich anfühlt. Egal, ob Sie Daten für ein Unternehmensportfolio aggregieren, Qualitätsprüfungen von Zeitplänen durchführen oder eine Brücke zwischen Ihrem CRM und den Tools Ihrer PMO bauen, bietet MPXJ.Net die zuverlässige, leistungsstarke Grundlage, die Sie benötigen.

Previous Next

Erste Schritte mit MPXJ.NET

Der empfohlene Weg, MPXJ.NET zu installieren, ist über NuGet. Bitte verwenden Sie die folgenden Befehle für eine reibungslose Installation.

MPXJ.NET über NuGet installieren

NuGet\Install-Package MPXJ.Net -Version 14.5.2

Sie können es direkt von der GitHub-Seite herunterladen.

Projekte über .NET erstellen und manipulieren

Die Open-Source-Bibliothek MPXJ.NET bietet mehrere wichtige Funktionen zur Handhabung von Projektdateien in .NET-Anwendungen. Neben dem Lesen können Sie neue Projektdateien von Grund auf erstellen: Projektattribute (Titel, Autor, Startdatum) definieren, Kalender und Ausnahmen hinzufügen, Aufgaben (mit Dauer, Startdaten, numerischen Feldern) hinzufügen, Ressourcen und Zuordnungen hinzufügen, Abhängigkeiten erstellen (Aufgabe A geht Aufgabe B voraus) und dann in ein Dateiformat (z. B. MSPDI oder MPX) speichern, das von MS Project oder anderen Tools geöffnet werden kann. Hier ist ein einfaches Beispiel, das zeigt, wie man ein neues Projekt in .NET-Anwendungen erstellt.

Wie erstelle ich ein neues Projekt und schreibe es im XML-Format über die .NET-Bibliothek?

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

Universelles Lesen von Projektdateien über C#

Die Hauptstärke der MPXJ.NET-Bibliothek liegt in ihrer Fähigkeit, eine Vielzahl von Formaten mit einer einfachen, konsistenten API zu laden und zu lesen. Die Bibliothek enthält Unterstützung für die automatische Erkennung des Dateiformats anhand der Dateierweiterung und des Inhalts. Die Read‑Methode gibt ein ProjectFile‑Objekt zurück, das der Hauptcontainer für alle anderen Projektelemente wie Aufgaben, Ressourcen und Zuordnungen ist. Dieses einfache Muster funktioniert identisch für eine XER‑Datei, eine XML‑Datei oder jedes andere unterstützte Format. Das folgende Beispiel zeigt, wie man dies mühelos ausführt.

Wie lade und lese ich eine MPP-Projektdatei über die .NET-API?

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

           

Konvertierung von Projektdateien über .NET API

Das Open-Source‑Projekt MPXJ.NET bietet vollständige Unterstützung für die Konvertierung von Projektdateien in andere unterstützte Dateiformate innerhalb von .NET‑Anwendungen. Aufgrund seiner Multi‑Format‑Fähigkeit wird MPXJ.NET häufig verwendet, um Projektdateien von einem Format in ein anderes innerhalb von .NET‑Anwendungen zu konvertieren. Zum Beispiel: .MPP‑Datei lesen und dann in .MPX oder .MSPDI oder sogar XER/PMXML schreiben (je nach Unterstützung). Die README enthält ein Beispiel für die Konvertierung.

Wie lese und konvertiere ich eine Projektdatei in .NET-Anwendungen?

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

Zugriff auf Projektaufgaben und -hierarchie

Projekte bestehen aus Aufgaben, und MPXJ.NET ermöglicht das Durchlaufen der gesamten Work Breakdown Structure (WBS). Die Bibliothek unterstützt verschiedene Funktionen zur Handhabung von Projektaufgaben und -daten, wie das Auflisten aller Aufgaben im Projekt, die Anzeige von Aufgabenübersichten, die Dauer, den Start und das Ende einer Aufgabe, den Prozentsatz der Fertigstellung einer Aufgabe und vieles mehr. Das folgende Beispiel zeigt, wie Entwickler mithilfe von .NET‑Befehlen durch alle Aufgaben iterieren können.

Wie iteriere ich durch alle Aufgaben eines Projekts über die C#-API?

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