Otwarta, darmowa API .NET do zarządzania projektami, obsługująca projekty w Redmine
Wiodąca biblioteka zarządzania projektami C# .NET umożliwia programistom tworzenie, odczytywanie, manipulowanie i konwertowanie plików projektów do innych formatów, takich jak MPP, MPT, XML, XER, PMXML i wiele innych.
Czym jest MPXJ.NET?
Zarządzanie danymi projektowymi często oznacza zmierzenie się z wieloma formatami plików pochodzącymi z narzędzi takich jak Microsoft Project, Primavera P6 i innych. Jeśli jesteś programistą .NET, który chce programowo odczytywać, zapisywać i manipulować danymi projektowymi bez uzależnienia od jednej platformy, MPXJ.NET jest potężną, otwarto‑źródłową biblioteką, której szukałeś. Biblioteka zawiera kilka ważnych funkcji pracy z plikami zarządzania projektami, takich jak tworzenie nowych projektów, odczytywanie istniejących plików projektów, konwertowanie między formatami, manipulowanie danymi harmonogramu, praca z zasobami i przydziałami, programowo.
MPXJ.NET jest otwarto‑źródłowym wrapperem .NET wokół biblioteki Java MPXJ (zarządzanej przez Jona Ilesa). Umożliwia programistom .NET — C#, VB.NET itp. — odczytywanie, zapisywanie i manipulowanie plikami harmonogramów projektów przy użyciu idiomatycznych typów i konwencji C#. Biblioteka MPXJ obsługuje wiele formatów harmonogramów i projektów, takich jak MPP, MPX, MSPDI XML, XER, bazy danych P6, Planner XML itp. Chociaż MPXJ pierwotnie opiera się na Javie, MPXJ.Net opakowuje ją i prezentuje konwencje C# (właściwości zamiast getterów/setterów Java; konwencje nazewnictwa .NET), dzięki czemu jest naturalna w kodzie .NET. Niezależnie od tego, czy agregujesz dane dla portfela przedsiębiorstwa, przeprowadzasz kontrole jakości harmonogramów, czy budujesz most między swoim CRM a narzędziami PMO, MPXJ.Net zapewnia niezawodną, wysokowydajną podstawę, której potrzebujesz.
Rozpoczęcie pracy z MPXJ.NET
Zalecanym sposobem instalacji MPXJ.NET jest użycie NuGet. Proszę użyć poniższych poleceń, aby przeprowadzić płynną instalację.
Zainstaluj MPXJ.NET za pomocą NuGet
NuGet\Install-Package MPXJ.Net -Version 14.5.2
Możesz pobrać go bezpośrednio ze strony GitHub
Tworzenie i manipulowanie projektami za pomocą .NET
Open source MPXJ.NET zapewnia kilka ważnych funkcji obsługi plików projektów w aplikacjach .NET. Poza odczytem możesz tworzyć nowe pliki projektów od podstaw: definiować właściwości projektu (tytuł, autor, data rozpoczęcia), dodawać kalendarze i wyjątki, dodawać zadania (z czasami trwania, datami rozpoczęcia, polami numerycznymi), dodawać zasoby i przydziały, tworzyć zależności (zadanie A poprzedza zadanie B), a następnie zapisywać w formacie pliku (np. MSPDI lub MPX), który może być otwarty w MS Project lub innych narzędziach. Oto prosty przykład, który demonstruje, jak stworzyć nowy projekt w aplikacjach .NET.
Jak utworzyć nowy projekt i zapisać go w formacie XML za pomocą biblioteki .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}");
}
Uniwersalne odczytywanie plików projektów za pomocą C#
Główną zaletą biblioteki MPXJ.NET jest jej zdolność do ładowania i odczytywania ogromnej liczby formatów przy użyciu prostego, spójnego API. Biblioteka zawiera wsparcie dla automatycznego wykrywania formatu pliku na podstawie jego rozszerzenia i zawartości. Metoda Read zwraca obiekt ProjectFile, który jest głównym kontenerem dla wszystkich innych elementów projektu, takich jak zadania, zasoby i przydziały. Ten prosty wzorzec działa identycznie dla pliku XER, pliku XML lub dowolnego innego obsługiwanego formatu. Poniższy przykład pokazuje, jak wykonać to z łatwością.
Jak wczytać i odczytać plik projektu MPP przy użyciu 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}");
}
Konwersja plików projektów za pomocą interfejsu API .NET
Open source MPXJ.NET zawiera pełne wsparcie dla konwertowania plików projektów na inne formaty plików w aplikacjach .NET. Dzięki swojej wieloformatowości, MPXJ.NET jest często używany do konwertowania plików projektów z jednego formatu na inny w aplikacjach .NET. Na przykład: odczytaj plik .MPP, a następnie zapisz jako .MPX lub .MSPDI lub nawet XER/PMXML (w zależności od wsparcia). README zawiera przykład konwersji.
Jak odczytać i przekonwertować plik projektu w aplikacjach .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}");
}
}
}
Dostęp do zadań projektowych i hierarchii
Projekty składają się z zadań, a MPXJ.NET umożliwia przeglądanie całej struktury podziału pracy (WBS). Biblioteka obsługuje różne funkcje związane z zarządzaniem zadaniami i danymi projektów, takie jak listowanie wszystkich zadań w projekcie, podgląd podsumowania zadań, czas trwania zadań, daty rozpoczęcia i zakończenia zadania, procent ukończenia zadania i wiele innych. Poniższy przykład pokazuje, jak programiści mogą iterować po wszystkich zadaniach przy użyciu poleceń .NET.
Jak iterować przez wszystkie zadania projektu przy użyciu 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}");
}
}