Atvērtā koda .NET projektu vadības API, lai pārvaldītu projektus Redmine
Vadošā C# .NET projektu vadības bibliotēka ļauj izstrādātājiem izveidot, lasīt, manipulēt un konvertēt projektu failus uz citām formātām, piemēram, MPP, MPT, XML, XER, PMXML un daudziem citiem.
Kas ir MPXJ.NET?
Pārvaldīt projektu datus bieži nozīmē cīnīties ar daudzu failu formātu daudzveidību, ko nodrošina tādi rīki kā Microsoft Project, Primavera P6 un citi. Ja esat .NET izstrādātājs, kurš vēlas programmatiski nolasīt, rakstīt un manipulēt ar projektu datiem, neesot piesaistītam vienai platformai, MPXJ.NET ir spēcīga, atvērtā koda bibliotēka, ko esat meklējis. Bibliotēka ietver vairākas svarīgas funkcijas darbam ar projektu vadības failiem, piemēram, jaunu projektu izveidi, esošu projektu failu nolasīšanu, konvertēšanu starp formātiem, grafika datu manipulēšanu, resursu un uzdevumu piešķiršanu, programmatiski.
MPXJ.NET ir atvērtā koda .NET ietvars ap Java bibliotēku MPXJ (vadīts no Jon Iles). Tas ļauj .NET izstrādātājiem — C#, VB.NET u.c. — lasīt, rakstīt un manipulēt ar projektu grafiku failiem, izmantojot idiomātiskus C# tipus un konvencijas. MPXJ bibliotēka atbalsta daudzus grafiku un projektu formātus, piemēram, MPP, MPX, MSPDI XML, XER, P6 datubāzes, Planner XML u.c. Lai gan MPXJ sākotnēji ir balstīts uz Java, MPXJ.Net to ietver un piedāvā C# konvencijas (īpašības, nevis Java get/set metodes; .NET nosaukumu konvencijas), tādējādi tas izskatās dabiski .NET kodā. Neatkarīgi no tā, vai jūs apkopojat datus uzņēmuma portfeļa vajadzībām, veicat kvalitātes pārbaudes grafikos vai veidojat tiltu starp jūsu CRM un PMO rīkiem, MPXJ.Net nodrošina uzticamu, augstas veiktspējas pamatu, kas jums nepieciešams.
Kā sākt darbu ar MPXJ.NET
Ieteicamais veids, kā instalēt MPXJ.NET, ir caur NuGet. Lūdzu, izmantojiet šādas komandas, lai veiktu vienkāršu instalāciju.
Instalējiet MPXJ.NET, izmantojot NuGet
NuGet\Install-Package MPXJ.Net -Version 14.5.2
Jūs varat lejupielādēt to tieši no GitHub lapas
Izveidot un manipulēt projektus, izmantojot .NET
Atvērtā koda MPXJ.NET nodrošina vairākas svarīgas funkcijas projektu failu apstrādei .NET lietojumprogrammās. Papildus lasīšanai, jūs varat izveidot jaunus projektu failus no nulles: definēt projekta īpašības (nosaukums, autors, sākuma datums), pievienot kalendārus un izņēmumus, pievienot uzdevumus (ar ilgumiem, sākuma datumiem, skaitliskajiem laukiem), pievienot resursus un piešķiršanas, izveidot atkarības (uzdevums A priekšroku dod uzdevumam B), un pēc tam saglabāt faila formātā (piemēram, MSPDI vai MPX), ko var atvērt MS Project vai citas rīki. Šeit ir vienkāršs piemērs, kas demonstrē, kā izveidot jaunu projektu .NET lietojumprogrammās.
Kā izveidot jaunu projektu un ierakstīt to XML formātā, izmantojot .NET bibliotēku?
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}");
}
Universāla projektu failu lasīšana, izmantojot C#
Pamatspēks MPXJ.NET bibliotēkai ir tās spēja ielādēt un nolasīt milzīgu skaitu formātu, izmantojot vienkāršu, konsekventu API. Bibliotēka ietver atbalstu automātiskai faila formāta noteikšanai, balstoties uz faila paplašinājumu un saturu. Metode Read atgriež ProjectFile objektu, kas ir saknes konteineris visām pārējām projekta vienībām, piemēram, uzdevumiem, resursiem un piešķiršanām. Šis vienkāršais modelis darbojas vienādi ar XER failu, XML failu vai jebkuru citu atbalstītu formātu. Sekojošais piemērs parāda, kā to izpildīt viegli.
Kā ielādēt un nolasīt MPP projekta failu, izmantojot .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}");
}
Projektu failu konvertēšana, izmantojot .NET API
Atvērtā koda MPXJ.NET nodrošina pilnīgu atbalstu projektu failu konvertēšanai uz citām atbalstītajām failu formātiem .NET lietojumprogrammās. Pateicoties tā daudzformātīgajai spējai, MPXJ.NET bieži tiek izmantots projektu failu konvertēšanai no viena formāta uz citu .NET lietojumprogrammās. Piemēram: nolasīt .MPP failu, pēc tam rakstīt .MPX vai .MSPDI vai pat XER/PMXML (atkarībā no atbalsta). README sniedz konvertēšanas piemēru.
Kā nolasīt un konvertēt projekta failu .NET lietojumprogrammās?
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}");
}
}
}
Piekļuve projektu uzdevumiem un hierarhijai
Projekti sastāv no uzdevumiem, un MPXJ.NET ļauj pārlūkot visu darba sadalījuma struktūru (WBS). Bibliotēka atbalsta dažādas funkcijas projektu uzdevumu un datu apstrādei, piemēram, visu uzdevumu sarakstu projektā, uzdevumu kopsavilkumu, uzdevumu ilgumu, uzdevuma sākumu un beigas, procentuālo pabeigumu un daudz ko citu. Zemāk esošais piemērs parāda, kā izstrādātāji var iterēt caur visiem uzdevumiem, izmantojot .NET komandas.
Kā iterēt cauri visiem projekta uzdevumiem, izmantojot 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}");
}
}