Nyílt forráskódú .NET projektmenedzsment API a Redmine projektek kezeléséhez
A vezető C# .NET projektmenedzsment könyvtár lehetővé teszi a fejlesztők számára, hogy létrehozzanak, olvassanak, manipuláljanak és konvertáljanak projektfájlokat más formátumokra, mint például MPP, MPT, XML, XER, PMXML és még sok más.
Mi az MPXJ.NET?
A projektadatok kezelése gyakran azt jelenti, hogy számos fájlformátummal kell megküzdeni olyan eszközökből, mint a Microsoft Project, a Primavera P6 és mások. Ha .NET fejlesztő vagy, és programozott módon szeretnéd olvasni, írni és manipulálni a projektadatokat anélkül, hogy egyetlen platformra lenne korlátozva, az MPXJ.NET a hatékony, nyílt forráskódú könyvtár, amelyet kerestél. A könyvtár számos fontos funkciót tartalmaz a projektmenedzsment fájlok kezeléséhez, például új projektek létrehozása, meglévő projektfájlok olvasása, formátumok közötti konvertálás, ütemezési adatok manipulálása, erőforrásokkal és hozzárendelésekkel való munka programozott módon.
Az MPXJ.NET egy nyílt forráskódú .NET csomagoló a Java MPXJ könyvtár köré (Jon Iles kezeli). Lehetővé teszi a .NET fejlesztőknek — C#, VB.NET stb. — hogy projekt‑ütemezési fájlokat olvassanak, írjanak és manipuláljanak idiomatikus C# típusok és konvenciók használatával. Az MPXJ könyvtár számos ütemezési és projektformátumot támogat, például MPP, MPX, MSPDI XML, XER, P6 adatbázisok, Planner XML stb. Bár az MPXJ eredetileg Java‑alapú, az MPXJ.Net becsomagolja és a C# konvenciókat (tulajdonságok a Java getter/setterek helyett; .NET elnevezési konvenciók) mutatja be, így természetesnek érződik a .NET kódban. Akár vállalati portfólió adatait aggregálja, akár ütemezéseken minőségellenőrzést végez, vagy hidat épít CRM-je és a PMO eszközei között, az MPXJ.Net megbízható, nagy teljesítményű alapot biztosít, amire szüksége van.
Az MPXJ.NET használatának megkezdése
Az MPXJ.NET telepítésének ajánlott módja a NuGet használata. Kérjük, használja a következő parancsokat a zökkenőmentes telepítéshez.
MPXJ.NET telepítése NuGet-en keresztül
NuGet\Install-Package MPXJ.Net -Version 14.5.2
Letöltheti közvetlenül a GitHub oldalról
.NET-en keresztül projektek létrehozása és manipulálása
A nyílt forráskódú MPXJ.NET számos fontos funkciót biztosít a projektfájlok .NET alkalmazásokon belüli kezeléséhez. A beolvasás mellett új projektfájlokat is létrehozhatsz a semmiből: meghatározhatod a projekt tulajdonságait (cím, szerző, kezdő dátum), hozzáadhatsz naptárakat és kivételeket, felvehetsz feladatokat (időtartamokkal, kezdő dátumokkal, numerikus mezőkkel), erőforrásokat és hozzárendeléseket, létrehozhatsz függőségeket (A feladat megelőzi B feladatot), majd elmentheted egy fájlformátumba (pl. MSPDI vagy MPX), amelyet a MS Project vagy más eszközök megnyithatnak. Íme egy egyszerű példa, amely bemutatja, hogyan hozhatsz létre új projektet .NET alkalmazásokban.
Hogyan hozhatunk létre új projektet, és írhatjuk XML formátumban a .NET könyvtár segítségével?
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}");
}
Általános projektfájl-olvasás C#-on keresztül
A MPXJ.NET könyvtár legfőbb erőssége, hogy egyszerű, konzisztens API-val képes betölteni és olvasni számos formátumot. A könyvtár tartalmazza a fájlformátum automatikus felismerését a fájl kiterjesztése és tartalma alapján. A Read metódus egy ProjectFile objektumot ad vissza, amely a többi projektentitás, például feladatok, erőforrások és hozzárendelések gyökérkonténere. Ez az egyszerű minta ugyanúgy működik XER fájl, XML fájl vagy bármely más támogatott formátum esetén. A következő példa megmutatja, hogyan hajtható végre könnyedén.
Hogyan tölthetünk be és olvashatunk egy MPP projektfájlt a .NET API-n keresztül?
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}");
}
Projektfájlok konvertálása .NET API-n keresztül
A nyílt forráskódú MPXJ.NET teljes körű támogatást nyújt a projektfájlok más támogatott fájlformátumokra való konvertálásához .NET alkalmazásokon belül. Többformátumú képessége miatt az MPXJ.NET-et gyakran használják projektfájlok egy formátumból a másikba történő átalakítására .NET alkalmazásokban. Például: .MPP fájl beolvasása, majd írás .MPX vagy .MSPDI vagy akár XER/PMXML formátumba (a támogatástól függően). A README példát ad a konvertálásra.
Hogyan olvashatunk és konvertálhatunk projektfájlt .NET alkalmazásokban?
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}");
}
}
}
Projektfeladatok és hierarchia elérése
A projektek feladatokból állnak, és az MPXJ.NET lehetővé teszi a teljes munkafelosztási struktúra (WBS) bejárását. A könyvtár számos funkciót támogat a projektfeladatok és adatok kezelésére, például a projekt összes feladatának listázását, feladatösszefoglaló megtekintését, feladatok időtartamát, egy feladat kezdő- és befejezési időpontját, a feladatok készültségi százalékát, és még sok mást. Az alábbi példa bemutatja, hogyan iterálhatnak a fejlesztők az összes feladaton .NET parancsok segítségével.
Hogyan iterálhatunk végig a projekt összes feladatai között a C# API-val?
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}");
}
}