API .NET open source per la gestione dei progetti per gestire i progetti in Redmine

La libreria leader per la gestione di progetti C# .NET consente agli sviluppatori di creare, leggere, manipolare e convertire i file di progetto in altri formati come MPP, MPT, XML, XER, PMXML e molti altri.

Che cos'è MPXJ.NET?

La gestione dei dati di progetto spesso comporta di confrontarsi con una moltitudine di formati di file provenienti da strumenti come Microsoft Project, Primavera P6 e altri. Se sei uno sviluppatore .NET che desidera leggere, scrivere e manipolare i dati di progetto in modo programmatico senza essere vincolato a una singola piattaforma, MPXJ.NET è la potente libreria open source che stavi cercando. La libreria include diverse funzionalità importanti per lavorare con i file di gestione dei progetti, come la creazione di nuovi progetti, la lettura di file di progetto esistenti, la conversione tra formati, la manipolazione dei dati di programmazione, la gestione di risorse e assegnazioni, in modo programmatico.

MPXJ.NET è un wrapper .NET open-source attorno alla libreria Java MPXJ (gestita da Jon Iles). Consente agli sviluppatori .NET—C#, VB.NET, ecc.—di leggere, scrivere e manipolare file di pianificazione di progetti usando tipi e convenzioni C# idiomatici. La libreria MPXJ supporta molti formati di pianificazione e progetto come MPP, MPX, MSPDI XML, XER, database P6, Planner XML, ecc. Sebbene MPXJ sia originariamente basata su Java, MPXJ.Net la avvolge e presenta convenzioni C# (proprietà anziché getter/setter Java; convenzioni di denominazione .NET) così da risultare naturale nel codice .NET. Che tu stia aggregando dati per un portafoglio aziendale, eseguendo controlli di qualità sui piani, o costruendo un ponte tra il tuo CRM e gli strumenti del PMO, MPXJ.Net fornisce la base affidabile e ad alte prestazioni di cui hai bisogno.

Previous Next

Iniziare con MPXJ.NET

Il modo consigliato per installare MPXJ.NET è tramite NuGet. Si prega di utilizzare i seguenti comandi per un'installazione fluida.

Installa MPXJ.NET tramite NuGet

NuGet\Install-Package MPXJ.Net -Version 14.5.2

Puoi scaricarlo direttamente da pagina GitHub

Creare e manipolare progetti tramite .NET

L'open source MPXJ.NET offre diverse funzionalità importanti per la gestione dei file di progetto all'interno delle applicazioni .NET. Oltre alla lettura, è possibile creare nuovi file di progetto da zero: definire le proprietà del progetto (titolo, autore, data di inizio), aggiungere calendari ed eccezioni, aggiungere attività (con durate, date di inizio, campi numerici), aggiungere risorse e assegnazioni, creare dipendenze (l'attività A precede l'attività B) e quindi salvare in un formato file (ad esempio, MSPDI o MPX) che può essere aperto da MS Project o altri strumenti. Ecco un semplice esempio che dimostra come creare un nuovo progetto all'interno delle applicazioni .NET.

Come creare un nuovo progetto e scriverlo in formato XML tramite la libreria .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}");
}

Lettura universale di file di progetto tramite C#

La principale forza della libreria MPXJ.NET è la sua capacità di caricare e leggere un'ampia varietà di formati con un'API semplice e coerente. La libreria include il supporto per rilevare automaticamente il formato del file in base all'estensione e al contenuto del file. Il metodo Read restituisce un oggetto ProjectFile, che è il contenitore radice per tutte le altre entità del progetto come attività, risorse e assegnazioni. Questo semplice schema funziona allo stesso modo per un file XER, un file XML o qualsiasi altro formato supportato. L'esempio seguente mostra come eseguirlo con facilità.

Come caricare e leggere un file di progetto MPP tramite l'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}");
}

           

Conversione di file di progetto tramite API .NET

L'open source MPXJ.NET include il supporto completo per la conversione dei file di progetto in altri formati supportati all'interno delle applicazioni .NET. Grazie alla sua capacità multi-formato, MPXJ.NET è spesso usato per convertire i file di progetto da un formato all'altro nelle applicazioni .NET. Per esempio: leggere un file .MPP, quindi scrivere in .MPX o .MSPDI o anche XER/PMXML (a seconda del supporto). Il README fornisce esempi di conversione.

Come leggere e convertire un file di progetto all'interno delle app .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}");
        }
    }
}
           

Accesso alle attività del progetto e alla gerarchia

I progetti sono composti da attività, e MPXJ.NET consente di attraversare l'intera Work Breakdown Structure (WBS). La libreria supporta varie funzionalità per la gestione delle attività e dei dati dei progetti, come l'elenco di tutte le attività nel progetto, la visualizzazione del riepilogo delle attività, la durata delle attività, l'inizio e la fine di un'attività, la Percentuale di completamento delle attività e molto altro. L'esempio seguente dimostra come gli sviluppatori possano iterare su tutte le attività utilizzando i comandi .NET.

Come iterare attraverso tutte le attività del progetto tramite l'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}");
    }
}
           
 Italiano