Open source .NET projektstyrings-API til at håndtere projekter i Redmine
Den førende C# .NET projektstyringsbibliotek giver udviklere mulighed for at oprette, læse, manipulere og konvertere projektfiler til andre formater som MPP, MPT, XML, XER, PMXML og mange flere.
Hvad er MPXJ.NET?
At håndtere projektdata betyder ofte, at man skal kæmpe med en række forskellige filformater fra værktøjer som Microsoft Project, Primavera P6 og andre. Hvis du er en .NET-udvikler, der ønsker at læse, skrive og manipulere projektdata programmatisk uden at være låst til en enkelt platform, er MPXJ.NET det kraftfulde, open source-bibliotek, du har ledt efter. Biblioteket indeholder flere vigtige funktioner til at arbejde med projektstyringsfiler, såsom at oprette nye projekter, læse eksisterende projektfiler, konvertere mellem formater, manipulere tidsplandata, arbejde med ressourcer og tildelinger programmatisk.
MPXJ.NET er en open-source .NET-omslag omkring Java-biblioteket MPXJ (administreret af Jon Iles). Det giver .NET-udviklere—C#, VB.NET osv.—mulighed for at læse, skrive og manipulere projektplanlægningsfiler ved hjælp af idiomatiske C#-typer og konventioner. MPXJ-biblioteket understøtter mange planlægnings- og projektformater såsom MPP, MPX, MSPDI XML, XER, P6-databaser, Planner XML osv. Selvom MPXJ oprindeligt er Java-baseret, omslutter MPXJ.Net det og præsenterer C#-konventioner (egenskaber i stedet for Java-getters/setters; .NET-navnekonventioner), så det føles naturligt i .NET-kode. Uanset om du aggregerer data til en virksomhedsportefølje, udfører kvalitetstjek på tidsplaner, eller bygger en bro mellem dit CRM og din PMO's værktøjer, leverer MPXJ.Net den pålidelige, højtydende grundlag, du har brug for.
Kom i gang med MPXJ.NET
Den anbefalede måde at installere MPXJ.NET på er via NuGet. Brug venligst følgende kommandoer for en problemfri installation.
Installer MPXJ.NET via NuGet
NuGet\Install-Package MPXJ.Net -Version 14.5.2
Du kan downloade den direkte fra GitHub-side
Opret og manipulér projekter via .NET
Den open source MPXJ.NET har leveret flere vigtige funktioner til håndtering af projektfiler i .NET-applikationer. Ud over læsning kan du oprette nye projektfiler fra bunden: definere projektets egenskaber (titel, forfatter, startdato), tilføje kalendere og undtagelser, tilføje opgaver (med varigheder, startdatoer, numeriske felter), tilføje ressourcer og tildelinger, oprette afhængigheder (opgave A går forud for opgave B) og derefter gemme til et filformat (f.eks. MSPDI eller MPX), som kan åbnes af MS Project eller andre værktøjer. Her er et enkelt eksempel, der demonstrerer, hvordan man opretter et nyt projekt i .NET-applikationer.
Hvordan opretter man et nyt projekt og skriver det i XML-format via .NET-biblioteket?
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}");
}
Universel læsning af projektfiler via C#
Den primære styrke ved MPXJ.NET-biblioteket er dets evne til at indlæse og læse et stort antal formater med en simpel, konsistent API. Biblioteket inkluderer understøttelse af automatisk at opdage filformatet baseret på filens udvidelse og indhold. Read-metoden returnerer et ProjectFile-objekt, som er den overordnede container for alle andre projektrelaterede enheder som opgaver, ressourcer og tildelinger. Dette enkle mønster fungerer identisk for en XER-fil, en XML-fil eller ethvert andet understøttet format. Det følgende eksempel viser, hvordan man udfører det med lethed.
Hvordan indlæser og læser man en MPP-projektfil via .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}");
}
Konvertering af projektfiler via .NET API
Den open source MPXJ.NET inkluderer fuld support til at konvertere projektfiler til andre understøttede filformater i .NET-applikationer. På grund af dens multi-format kapacitet bruges MPXJ.NET ofte til at konvertere projektfiler fra ét format til et andet i .NET-applikationer. For eksempel: læs .MPP-fil, og skriv derefter til .MPX eller .MSPDI eller endda XER/PMXML (afhængigt af support). README'en giver et eksempel på konvertering.
Hvordan læser og konverterer man projektfilen i .NET-applikationer?
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}");
}
}
}
Få adgang til projektopgaver og hierarki
Projekter består af opgaver, og MPXJ.NET giver dig mulighed for at gennemløbe hele Work Breakdown Structure (WBS). Biblioteket understøtter forskellige funktioner til håndtering af projektopgaver og data, såsom liste over alle opgaver i projektet, visning af opgavesammendrag, opgavers varighed, start og slut på en opgave, procentdel fuldført af en opgave, og meget mere. Det følgende eksempel demonstrerer, hvordan udviklere kan iterere gennem alle opgaver ved hjælp af .NET-kommandoer.
Hvordan itererer man gennem alle projektets opgaver via 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}");
}
}