Avoimen lähdekoodin .NET-projektinhallinnan API projektien hallintaan Redmineissä

Johtava C# .NET -projektinhallintakirjasto mahdollistaa kehittäjille projektitiedostojen luomisen, lukemisen, muokkaamisen ja muuntamisen muihin formaatteihin, kuten MPP, MPT, XML, XER, PMXML ja moniin muihin.

Mikä on MPXJ.NET?

Projektitietojen hallinta tarkoittaa usein kamppailua monien tiedostomuotojen kanssa, joita työkalut kuten Microsoft Project, Primavera P6 ja muut käyttävät. Jos olet .NET-kehittäjä, joka haluaa lukea, kirjoittaa ja käsitellä projektitietoja ohjelmallisesti ilman, että olet sidottu yhteen alusta, MPXJ.NET on tehokas, avoimen lähdekoodin kirjasto, jota olet etsinyt. Kirjasto sisältää useita tärkeitä ominaisuuksia projektinhallintatiedostojen kanssa työskentelemiseen, kuten uusien projektien luominen, olemassa olevien projektitiedostojen lukeminen, muuntaminen eri formaattien välillä, aikataulutietojen muokkaaminen, resurssien ja kohdistusten käsittely ohjelmallisesti.

MPXJ.NET on avoimen lähdekoodin .NET-kääre Java-kirjaston MPXJ (jonka hallinnoi Jon Iles) ympärillä. Se mahdollistaa .NET-kehittäjille—C#, VB.NET, jne.—luvun, kirjoittamisen ja projektiaikataulutiedostojen muokkaamisen idiomatisilla C#-tyypeillä ja -konventioilla. MPXJ-kirjasto tukee monia aikataulu- ja projektiformaatteja, kuten MPP, MPX, MSPDI XML, XER, P6-tietokannat, Planner XML, jne. Vaikka MPXJ on alun perin Java-pohjainen, MPXJ.Net käärii sen ja esittelee C#-konventioita (ominaisuudet Java-gettereiden/settereiden sijaan; .NET-nimeämiskonventiot), joten se tuntuu luonnolliselta .NET-koodissa. Olitpa sitten keräämässä tietoja yritysportfoliolle, suorittamassa laadun tarkastuksia aikatauluissa tai rakentamassa siltaa CRM:si ja PMO:n työkalujen välillä, MPXJ.Net tarjoaa luotettavan, korkean suorituskyvyn perustan, jota tarvitset.

Previous Next

Aloittaminen MPXJ.NET:n kanssa

Suositeltu tapa asentaa MPXJ.NET on NuGetin kautta. Käytä seuraavia komentoja sujuvan asennuksen varmistamiseksi.

Asenna MPXJ.NET NuGetin kautta

NuGet\Install-Package MPXJ.Net -Version 14.5.2

Voit ladata sen suoraan GitHub-sivulta

Luo ja muokkaa projekteja .NETin kautta

Avoimen lähdekoodin MPXJ.NET tarjoaa useita tärkeitä ominaisuuksia projektitiedostojen käsittelyyn .NET-sovelluksissa. Lukemisen lisäksi voit luoda uusia projektitiedostoja alusta alkaen: määritellä projektin ominaisuudet (otsikko, tekijä, aloituspäivä), lisätä kalentereita ja poikkeuksia, lisätä tehtäviä (kestoilla, aloituspäivillä, numeerisilla kentillä), lisätä resursseja ja kohdistuksia, luoda riippuvuuksia (tehtävä A edeltää tehtävää B) ja tallentaa sitten tiedostomuotoon (esim. MSPDI tai MPX), jonka MS Project tai muut työkalut voivat avata. Tässä on yksinkertainen esimerkki, joka näyttää, miten luodaan uusi projekti .NET-sovelluksissa.

Kuinka luoda uusi projekti ja kirjoittaa se XML-muodossa .NET-kirjaston avulla?

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

Yleinen projektitiedostojen lukeminen C#:n avulla

MPXJ.NET-kirjaston ensisijainen vahvuus on sen kyky ladata ja lukea valtava määrä formaatteja yksinkertaisella, yhtenäisellä API:lla. Kirjasto sisältää tuen tiedostomuodon automaattiseen tunnistamiseen tiedoston laajennuksen ja sisällön perusteella. Read-metodi palauttaa ProjectFile-objektin, joka on kaikkien muiden projektin entiteettien, kuten tehtävien, resurssien ja kohdistusten, juurikonttiaineri. Tämä yksinkertainen malli toimii samalla tavalla XER-tiedostolle, XML-tiedostolle tai mille tahansa muulle tuetulle formaatille. Seuraava esimerkki näyttää, miten se tehdään helposti.

Kuinka ladata ja lukea MPP-projektitiedosto .NET API:n avulla?

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

           

Projektitiedostojen muuntaminen .NET API:n avulla

Avoimen lähdekoodin MPXJ.NET sisältää täyden tuen projektitiedostojen muuntamiseen muihin tukiformaatteihin .NET-sovelluksissa. Moniformaattisen kapasiteettinsa vuoksi MPXJ.NET:ää käytetään usein projektitiedostojen muuntamiseen yhdestä formaatista toiseen .NET-sovelluksissa. Esimerkiksi: lue .MPP-tiedosto ja kirjoita sitten .MPX- tai .MSPDI- tai jopa XER/PMXML-muotoon (riippuen tuesta). README tarjoaa esimerkin muuntamisesta.

Kuinka lukea ja muuntaa projektitiedosto .NET-sovelluksissa?

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

Projektitehtävien ja hierarkian käyttö

Projektit koostuvat tehtävistä, ja MPXJ.NET mahdollistaa koko työpakettirakenteen (WBS) läpikäymisen. Kirjasto tukee erilaisia ominaisuuksia projektitehtävien ja -tietojen käsittelyyn, kuten kaikkien projektin tehtävien luettelointi, tehtävien yhteenvedon tarkastelu, tehtävien kesto, aloitus- ja lopetuspäivämäärä, valmiusprosentti ja monia muita. Seuraava esimerkki osoittaa, miten kehittäjät voivat iteratiivisesti käydä läpi kaikki tehtävät .NET-komentoja käyttäen.

Kuinka käydä läpi kaikki projektin tehtävät C#-API:n avulla?

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