Open Source .NET API pro řízení projektů pro práci s projekty v Redmine

Vedoucí knihovna pro správu projektů v C# .NET umožňuje vývojářům vytvářet, číst, manipulovat a převádět projektové soubory do dalších formátů, jako jsou MPP, MPT, XML, XER, PMXML a mnoho dalších.

Co je MPXJ.NET?

Správa projektových dat často znamená zápas s množstvím formátů souborů z nástrojů jako Microsoft Project, Primavera P6 a dalších. Pokud jste .NET vývojář, který chce programově číst, zapisovat a manipulovat s projektovými daty bez omezení na jedinou platformu, MPXJ.NET je výkonná open source knihovna, kterou jste hledali. Knihovna obsahuje několik důležitých funkcí pro práci se soubory projektového řízení, jako je vytváření nových projektů, čtení existujících souborů projektů, převod mezi formáty, manipulace s plánovacími údaji, práce se zdroji a přiřazeními programově.

MPXJ.NET je open-source .NET obal kolem Java knihovny MPXJ (spravováno Jonem Ilesem). Umožňuje vývojářům .NET—C#, VB.NET atd.—číst, zapisovat a manipulovat se soubory projektových harmonogramů pomocí idiomatických typů a konvencí C#. Knihovna MPXJ podporuje mnoho formátů harmonogramů a projektů, jako jsou MPP, MPX, MSPDI XML, XER, databáze P6, Planner XML atd. Přestože MPXJ je původně založeno na Javě, MPXJ.Net jej obaluje a představuje konvence C# (vlastnosti místo Java getterů/setterů; .NET pojmenovací konvence), takže se to v .NET kódu cítí přirozeně. Ať už agregujete data pro firemní portfolio, provádíte kontrolu kvality harmonogramů nebo budujete most mezi vaším CRM a nástroji PMO, MPXJ.Net poskytuje spolehlivý, vysoce výkonný základ, který potřebujete.

Previous Next

Začínáme s MPXJ.NET

Doporučený způsob instalace MPXJ.NET je přes NuGet. Použijte prosím následující příkazy pro hladkou instalaci.

Instalace MPXJ.NET pomocí NuGet

NuGet\Install-Package MPXJ.Net -Version 14.5.2

Můžete jej stáhnout přímo z GitHub stránky

Vytvářejte a manipulujte s projekty pomocí .NET

Otevřený zdrojový kód MPXJ.NET poskytuje několik důležitých funkcí pro práci se soubory projektů v aplikacích .NET. Kromě čtení můžete vytvářet nové soubory projektů od nuly: definovat vlastnosti projektu (název, autor, datum zahájení), přidávat kalendáře a výjimky, přidávat úkoly (s délkami trvání, daty zahájení, číselnými poli), přidávat zdroje a přiřazení, vytvářet závislosti (úkol A předchází úkolu B) a poté ukládat do formátu souboru (např. MSPDI nebo MPX), který lze otevřít v MS Project nebo jiných nástrojích. Zde je jednoduchý příklad, který ukazuje, jak vytvořit nový projekt v aplikacích .NET.

Jak vytvořit nový projekt a zapsat jej ve formátu XML pomocí .NET knihovny?

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

Univerzální čtení projektových souborů pomocí C#

Hlavní silou knihovny MPXJ.NET je její schopnost načítat a číst velké množství formátů pomocí jednoduchého, konzistentního API. Knihovna zahrnuje podporu pro automatické rozpoznání formátu souboru na základě jeho přípony a obsahu. Metoda Read vrací objekt ProjectFile, který je kořenovým kontejnerem pro všechny ostatní entity projektu, jako jsou úkoly, zdroje a přiřazení. Tento jednoduchý vzor funguje stejně pro soubor XER, soubor XML nebo jakýkoli jiný podporovaný formát. Následující příklad ukazuje, jak to provést snadno.

Jak načíst a přečíst soubor MPP projektu pomocí .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}");
}

           

Převod projektových souborů pomocí .NET API

Otevřený zdrojový kód MPXJ.NET zahrnuje kompletní podporu pro převod projektových souborů do dalších podporovaných formátů souborů v .NET aplikacích. Díky své víceformátové kapacitě se MPXJ.NET často používá k převodu projektových souborů z jednoho formátu do druhého v .NET aplikacích. Například: načíst soubor .MPP, pak zapsat do .MPX nebo .MSPDI nebo dokonce XER/PMXML (v závislosti na podpoře). README poskytuje příklad převodu.

Jak číst a převést soubor projektu v .NET aplikacích?

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

Přístup k úkolům projektu a hierarchii

Projekty jsou složeny z úkolů a MPXJ.NET vám umožňuje procházet celou strukturu rozdělení práce (WBS). Knihovna podporuje různé funkce pro práci s úkoly a daty projektů, jako je výpis všech úkolů v projektu, zobrazení souhrnu úkolů, doba trvání úkolů, začátek a konec úkolu, procento dokončení úkolu a mnoho dalšího. Následující příklad ukazuje, jak mohou vývojáři iterovat přes všechny úkoly pomocí .NET příkazů.

Jak iterovat přes všechny úkoly projektu pomocí 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}");
    }
}
           
 Čeština