Ανοιχτού Κώδικα .NET API Διαχείρισης Έργων για Διαχείριση Έργων στο Redmine
Η κορυφαία βιβλιοθήκη διαχείρισης έργων C# .NET επιτρέπει στους προγραμματιστές να δημιουργούν, διαβάζουν, διαχειρίζονται και μετατρέπουν αρχεία έργου σε άλλες μορφές όπως MPP, MPT, XML, XER, PMXML και πολλές άλλες.
Τι είναι το MPXJ.NET;
Η διαχείριση δεδομένων έργου συχνά σημαίνει την αντιμετώπιση μιας πληθώρας μορφών αρχείων από εργαλεία όπως το Microsoft Project, το Primavera P6 και άλλα. Εάν είστε προγραμματιστής .NET που θέλει να διαβάζει, να γράφει και να χειρίζεται δεδομένα έργου προγραμματιστικά χωρίς να περιορίζεται σε μία μόνο πλατφόρμα, το MPXJ.NET είναι η ισχυρή, ανοιχτού κώδικα βιβλιοθήκη που ψάχνετε. Η βιβλιοθήκη περιλαμβάνει πολλές σημαντικές λειτουργίες για εργασία με αρχεία διαχείρισης έργων, όπως δημιουργία νέων έργων, ανάγνωση υπαρχόντων αρχείων έργου, μετατροπή μεταξύ μορφών, διαχείριση δεδομένων χρονοδιαγράμματος, εργασία με πόρους και αναθέσεις, προγραμματιστικά.
Το MPXJ.NET είναι ένα ανοιχτού κώδικα .NET wrapper γύρω από τη βιβλιοθήκη Java MPXJ (διαχειρίζεται από τον Jon Iles). Επιτρέπει στους .NET προγραμματιστές—C#, VB.NET κ.λπ.—να διαβάζουν, να γράφουν και να διαχειρίζονται αρχεία χρονοδιαγράμματος έργου χρησιμοποιώντας ιδιωματικούς τύπους και συμβάσεις C#. Η βιβλιοθήκη MPXJ υποστηρίζει πολλές μορφές χρονοδιαγραμμάτων και έργων όπως MPP, MPX, MSPDI XML, XER, βάσεις δεδομένων P6, Planner XML κ.λπ. Αν και το MPXJ είναι αρχικά βασισμένο σε Java, το MPXJ.Net το τυλίγει και παρουσιάζει τις συμβάσεις C# (ιδιότητες αντί για getters/setters της Java· συμβάσεις ονοματοδοσίας .NET) ώστε να αισθάνεται φυσικό στον κώδικα .NET. Είτε συγκεντρώνετε δεδομένα για ένα επιχειρησιακό χαρτοφυλάκιο, εκτελείτε ελέγχους ποιότητας στα χρονοδιαγράμματα, είτε χτίζετε μια γέφυρα μεταξύ του CRM σας και των εργαλείων του PMO, το MPXJ.Net παρέχει το αξιόπιστο, υψηλής απόδοσης θεμέλιο που χρειάζεστε.
Ξεκινώντας με το MPXJ.NET
Ο συνιστώμενος τρόπος εγκατάστασης του MPXJ.NET είναι μέσω του NuGet. Παρακαλώ χρησιμοποιήστε τις παρακάτω εντολές για μια ομαλή εγκατάσταση.
Εγκατάσταση MPXJ.NET μέσω NuGet
NuGet\Install-Package MPXJ.Net -Version 14.5.2
Μπορείτε να το κατεβάσετε απευθείας από τη σελίδα GitHub
Δημιουργία και διαχείριση έργων μέσω .NET
Το ανοιχτού κώδικα MPXJ.NET παρέχει αρκετά σημαντικά χαρακτηριστικά για τη διαχείριση αρχείων έργου μέσα σε εφαρμογές .NET. Πέρα από την ανάγνωση, μπορείτε να δημιουργήσετε νέα αρχεία έργου από το μηδέν: ορίστε ιδιότητες του έργου (τίτλος, συγγραφέας, ημερομηνία έναρξης), προσθέστε ημερολόγια και εξαιρέσεις, προσθέστε εργασίες (με διάρκειες, ημερομηνίες έναρξης, αριθμητικά πεδία), προσθέστε πόρους και αναθέσεις, δημιουργήστε εξαρτήσεις (η εργασία A προηγείται της εργασίας B), και στη συνέχεια αποθηκεύστε σε μορφή αρχείου (π.χ., MSPDI ή MPX) που μπορεί να ανοιχθεί από το MS Project ή άλλα εργαλεία. Εδώ είναι ένα απλό παράδειγμα που δείχνει πώς να δημιουργήσετε ένα νέο έργο μέσα σε εφαρμογές .NET.
Πώς να δημιουργήσετε ένα νέο έργο και να το γράψετε σε μορφή XML μέσω της βιβλιοθήκης .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}");
}
Καθολική ανάγνωση αρχείων έργου μέσω C#
Η κύρια δύναμη της βιβλιοθήκης MPXJ.NET είναι η ικανότητά της να φορτώνει και να διαβάζει έναν τεράστιο αριθμό μορφών με ένα απλό, συνεπές API. Η βιβλιοθήκη περιλαμβάνει υποστήριξη για αυτόματη ανίχνευση της μορφής του αρχείου βάσει της επέκτασης και του περιεχομένου του αρχείου. Η μέθοδος Read επιστρέφει ένα αντικείμενο ProjectFile, το οποίο είναι το ριζικό κοντέινερ για όλα τα άλλα στοιχεία του έργου όπως εργασίες, πόροι και αναθέσεις. Αυτό το απλό μοτίβο λειτουργεί εξίσου για ένα αρχείο XER, ένα αρχείο XML ή οποιαδήποτε άλλη υποστηριζόμενη μορφή. Το παρακάτω παράδειγμα δείχνει πώς να το εκτελέσετε με ευκολία.
Πώς να φορτώσετε και να διαβάσετε ένα αρχείο έργου MPP μέσω του .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}");
}
Μετατροπή αρχείων έργου μέσω .NET API
Το ανοιχτό λογισμικό MPXJ.NET περιλαμβάνει πλήρη υποστήριξη για τη μετατροπή αρχείων έργου σε άλλες μορφές αρχείων μέσα σε εφαρμογές .NET. Λόγω της δυνατότητας πολλαπλών μορφών, το MPXJ.NET χρησιμοποιείται συχνά για τη μετατροπή αρχείων έργου από τη μία μορφή στην άλλη μέσα σε εφαρμογές .NET. Για παράδειγμα: ανάγνωση αρχείου .MPP, έπειτα εγγραφή σε .MPX ή .MSPDI ή ακόμη και XER/PMXML (ανάλογα με την υποστήριξη). Το README παρέχει παράδειγμα μετατροπής.
Πώς να διαβάσετε και να μετατρέψετε ένα αρχείο έργου μέσα σε εφαρμογές .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}");
}
}
}
Πρόσβαση σε εργασίες έργου και ιεραρχία
Τα έργα αποτελούνται από εργασίες, και το MPXJ.NET σας επιτρέπει να περιηγηθείτε σε ολόκληρη τη Δομή Διάσπασης Εργασιών (WBS). Η βιβλιοθήκη υποστηρίζει διάφορες λειτουργίες για τη διαχείριση εργασιών και δεδομένων έργων, όπως η λίστα όλων των εργασιών στο έργο, η προβολή σύνοψης εργασιών, η διάρκεια των εργασιών, η έναρξη και η λήξη μιας εργασίας, το Ποσοστό0Ολοκλήρωσης μιας εργασίας, και πολλά άλλα. Το παρακάτω παράδειγμα δείχνει πώς οι προγραμματιστές μπορούν να επαναλάβουν όλες τις εργασίες χρησιμοποιώντας εντολές .NET.
Πώς να επαναλάβετε όλα τα καθήκοντα του έργου μέσω του 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}");
}
}