Atviro kodo .NET projektų valdymo API, skirtas tvarkyti projektus Redmine platformoje
Vyriausia C# .NET projektų valdymo biblioteka leidžia kūrėjams kurti, skaityti, manipuliuoti ir konvertuoti projektų failus į kitus formatus, tokius kaip MPP, MPT, XML, XER, PMXML ir daugelį kitų.
Kas yra MPXJ.NET?
Projektų duomenų valdymas dažnai reiškia kovą su daugybe failų formatų iš tokių įrankių kaip Microsoft Project, Primavera P6 ir kt. Jei esate .NET kūrėjas, norintis programiškai skaityti, rašyti ir manipuliuoti projekto duomenimis be priklausomybės nuo vienos platformos, MPXJ.NET yra galinga, atviro kodo biblioteka, kurios ieškojote. Biblioteka apima kelias svarbias funkcijas darbui su projektų valdymo failais, tokias kaip naujų projektų kūrimas, esamų projekto failų skaitymas, konvertavimas tarp formatų, tvarkaraščių duomenų manipuliavimas, darbų su ištekliais ir priskyrimais atlikimas programiškai.
MPXJ.NET yra atviro kodo .NET apvalkalas aplink Java biblioteką MPXJ (valdo Jon Iles). Jis leidžia .NET kūrėjams — C#, VB.NET ir kt. — skaityti, rašyti ir manipuliuoti projekto tvarkaraščių failais naudojant idiomatiškus C# tipus ir konvencijas. MPXJ biblioteka palaiko daugelį tvarkaraščių ir projektų formatų, tokių kaip MPP, MPX, MSPDI XML, XER, P6 duomenų bazės, Planner XML ir kt. Nors MPXJ iš pradžių buvo sukurta Java kalba, MPXJ.Net ją supakuoja ir pristato C# konvencijas (savybės vietoj Java get/set metodų; .NET pavadinimų konvencijos), todėl ji jaučiasi natūraliai .NET kode. Nesvarbu, ar renkatės duomenis į įmonės portfelį, atliekate kokybės patikrinimus tvarkaraščiuose, ar kuriate tiltą tarp savo CRM ir PMO įrankių, MPXJ.Net suteikia patikimą, aukštos našumo pagrindą, kurio jums reikia.
Pradžia su MPXJ.NET
Rekomenduojamas būdas įdiegti MPXJ.NET – per NuGet. Prašome naudoti šias komandas sklandžiam įdiegimui.
Įdiekite MPXJ.NET per NuGet
NuGet\Install-Package MPXJ.Net -Version 14.5.2
Galite atsisiųsti tiesiogiai iš GitHub puslapis
Kurti ir manipuliuoti projektais per .NET
Atviro kodo MPXJ.NET suteikia kelias svarbias funkcijas projektų failų tvarkymui .NET programose. Be skaitymo, galite kurti naujus projektų failus nuo nulio: apibrėžti projekto savybes (pavadinimą, autorių, pradžios datą), pridėti kalendorius ir išimtis, pridėti užduotis (su trukmėmis, pradžios datomis, skaitiniais laukais), pridėti išteklius ir priskyrimus, kurti priklausomybes (užduotis A ankstesnė užduočiai B), ir tada išsaugoti į failo formatą (pvz., MSPDI arba MPX), kurį gali atverti MS Project arba kitos priemonės. Štai paprastas pavyzdys, kuris demonstruoja, kaip sukurti naują projektą .NET programose.
Kaip sukurti naują projektą ir įrašyti jį XML formatu naudojant .NET biblioteką?
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}");
}
Universalus projektų failų skaitymas per C#
Pagrindinis MPXJ.NET bibliotekos stiprumas yra jos gebėjimas įkelti ir skaityti daugybę formatų naudojant paprastą, nuoseklią API. Biblioteka įtraukia palaikymą automatiškai nustatyti failo formatą pagal failo plėtinį ir turinį. Metodas Read grąžina ProjectFile objektą, kuris yra šakninis konteineris visiems kitiems projekto elementams, tokiems kaip užduotys, ištekliai ir priskyrimai. Šis paprastas modelis veikia identiškai XER failui, XML failui arba bet kuriam kitam palaikomam formatui. Tolimesnis pavyzdys rodo, kaip tai atlikti lengvai.
Kaip įkelti ir perskaityti MPP projekto failą naudojant .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}");
}
Projektų failų konvertavimas per .NET API
Atviro kodo MPXJ.NET suteikia visapusišką palaikymą konvertuojant projekto failus į kitus palaikomus failų formatus .NET programose. Dėl savo daugelio formatų galimybių MPXJ.NET dažnai naudojamas konvertuoti projekto failus iš vieno formato į kitą .NET programose. Pavyzdžiui: perskaityti .MPP failą, tada įrašyti į .MPX arba .MSPDI ar net XER/PMXML (priklausomai nuo palaikymo). README pateikia konvertavimo pavyzdį.
Kaip perskaityti ir konvertuoti projekto failą .NET programose?
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}");
}
}
}
Prieiga prie projekto užduočių ir hierarchijos
Projektai susideda iš užduočių, o MPXJ.NET leidžia naršyti visą darbo struktūros (WBS) struktūrą. Biblioteka palaiko įvairias funkcijas, susijusias su projekto užduotimis ir duomenimis, tokias kaip visų projekto užduočių sąrašas, užduočių santraukos peržiūra, užduočių trukmė, pradžia ir pabaiga, užduoties baigimo procentas ir daugelis kitų. Žemiau pateiktas pavyzdys demonstruoja, kaip kūrėjai gali iteruoti per visas užduotis naudojant .NET komandas.
Kaip iteruoti per visas projekto užduotis naudojant 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}");
}
}