API open source .NET pentru managementul proiectelor pentru gestionarea proiectelor în Redmine
Biblioteca de gestionare a proiectelor C# .NET de top permite dezvoltatorilor să creeze, să citească, să manipuleze și să convertească fișiere de proiect în alte formate precum MPP, MPT, XML, XER, PMXML și multe altele.
Ce este MPXJ.NET?
Gestionarea datelor de proiect înseamnă adesea să te confrunți cu o multitudine de formate de fișiere provenite din instrumente precum Microsoft Project, Primavera P6 și altele. Dacă ești un dezvoltator .NET care dorește să citească, să scrie și să manipuleze datele de proiect programatic, fără a fi blocat pe o singură platformă, MPXJ.NET este biblioteca puternică și open source pe care o căutai. Biblioteca include mai multe funcționalități importante pentru lucrul cu fișierele de management de proiect, cum ar fi crearea de proiecte noi, citirea fișierelor de proiect existente, conversia între formate, manipularea datelor de programare, lucrul cu resursele și alocările, programatic.
MPXJ.NET este un wrapper open-source pentru .NET în jurul bibliotecii Java MPXJ (Gestionat de Jon Iles). Permite dezvoltatorilor .NET—C#, VB.NET etc.—să citească, să scrie și să manipuleze fișiere de programare a proiectelor utilizând tipuri și convenții idiomatice C#. Biblioteca MPXJ suportă numeroase formate de programare și proiect, cum ar fi MPP, MPX, MSPDI XML, XER, baze de date P6, Planner XML etc. Deși MPXJ este inițial bazat pe Java, MPXJ.Net îl învelește și prezintă convențiile C# (proprietăți în loc de getter/setter Java; convenții de denumire .NET), astfel încât să se simtă natural în codul .NET. Indiferent dacă agregați date pentru un portofoliu enterprise, efectuați verificări de calitate ale programărilor sau construiți o punte între CRM-ul dumneavoastră și instrumentele PMO, MPXJ.Net oferă fundația fiabilă și de înaltă performanță de care aveți nevoie.
Începerea utilizării MPXJ.NET
Modul recomandat de instalare a MPXJ.NET este prin NuGet. Vă rugăm să utilizați comenzile următoare pentru o instalare fără probleme.
Instalați MPXJ.NET prin NuGet
NuGet\Install-Package MPXJ.Net -Version 14.5.2
Puteți descărca direct de pe pagina GitHub
Creați și manipulați proiecte prin .NET
MPXJ.NET open source oferă mai multe funcționalități importante pentru gestionarea fișierelor de proiect în aplicații .NET. Dincolo de citire, poți crea noi fișiere de proiect de la zero: definește proprietățile proiectului (titlu, autor, dată de început), adaugă calendare și excepții, adaugă sarcini (cu durate, date de început, câmpuri numerice), adaugă resurse și alocări, creează dependențe (sarcina A precede sarcina B) și apoi salvează într-un format de fișier (de ex., MSPDI sau MPX) care poate fi deschis de MS Project sau alte instrumente. Iată un exemplu simplu care demonstrează cum să creezi un nou proiect în aplicații .NET.
Cum să creezi un proiect nou și să îl scrii în format XML prin intermediul bibliotecii .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}");
}
Citirea universală a fișierelor de proiect prin C#
Punctul forte principal al bibliotecii MPXJ.NET este capacitatea sa de a încărca și citi un număr mare de formate cu un API simplu și coerent. Biblioteca include suport pentru detectarea automată a formatului fișierului pe baza extensiei și conținutului acestuia. Metoda Read returnează un obiect ProjectFile, care este containerul rădăcină pentru toate celelalte entități ale proiectului, cum ar fi sarcini, resurse și alocări. Acest model simplu funcționează în mod identic pentru un fișier XER, un fișier XML sau orice alt format suportat. Exemplul următor arată cum să îl execuți cu ușurință.
Cum să încarci și să citești un fișier de proiect MPP prin API-ul .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}");
}
Conversia fișierelor de proiect prin API .NET
MPXJ.NET open source include suport complet pentru convertirea fișierelor de proiect în alte formate de fișiere suport în cadrul aplicațiilor .NET. Datorită capacității sale multi-format, MPXJ.NET este adesea utilizat pentru a converti fișierele de proiect dintr-un format în altul în cadrul aplicațiilor .NET. De exemplu: citește fișierul .MPP, apoi scrie în .MPX sau .MSPDI sau chiar XER/PMXML (în funcție de suport). README oferă un exemplu de conversie.
Cum să citești și să convertești fișierul de proiect în aplicații .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}");
}
}
}
Accesarea sarcinilor și ierarhiei proiectului
Proiectele sunt alcătuite din sarcini, iar MPXJ.NET vă permite să parcurgeți întreaga structură de defalcare a muncii (WBS). Biblioteca suportă diverse funcționalități pentru gestionarea sarcinilor și datelor proiectului, cum ar fi listarea tuturor sarcinilor din proiect, vizualizarea rezumatului sarcinilor, durata sarcinilor, începutul și sfârșitul unei sarcini, procentajul de finalizare al sarcinilor și multe altele. Exemplul următor demonstrează cum dezvoltatorii pot itera prin toate sarcinile utilizând comenzi .NET.
Cum să iterezi prin toate sarcinile proiectului prin API-ul 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}");
}
}