API Pengurusan Projek .NET Sumber Terbuka untuk Mengendalikan Projek dalam Redmine
Perpustakaan Pengurusan Projek C# .NET terkemuka membolehkan Pemaju untuk Membuat, Membaca, Mengendalikan dan Menukar Fail Projek ke Format Lain seperti MPP, MPT, XML, XER, PMXML, dan banyak lagi.
Apakah MPXJ.NET?
Mengurus data projek sering bermakna berurusan dengan pelbagai format fail daripada alat seperti Microsoft Project, Primavera P6, dan lain-lain. Jika anda seorang pemaju .NET yang ingin membaca, menulis, dan memanipulasi data projek secara programatik tanpa terikat kepada satu platform, MPXJ.NET adalah perpustakaan sumber terbuka yang kuat yang anda cari. Perpustakaan ini telah menyertakan beberapa ciri penting untuk bekerja dengan fail pengurusan projek, seperti membuat projek baru, membaca fail projek sedia ada, menukar antara format, memanipulasi data jadual, bekerja dengan sumber dan penugasan, secara programatik.
MPXJ.NET ialah pembungkus .NET sumber terbuka di sekitar perpustakaan Java MPXJ (Dikendalikan oleh Jon Iles). Ia membolehkan pembangun .NET—C#, VB.NET, dll—untuk membaca, menulis dan memanipulasi fail jadual projek menggunakan jenis dan konvensi C# yang idiomatik. Perpustakaan MPXJ menyokong banyak format jadual dan projek seperti MPP, MPX, MSPDI XML, XER, pangkalan data P6, Planner XML, dll. Walaupun MPXJ pada asalnya berasaskan Java, MPXJ.Net membungkusnya dan mempersembahkan konvensi C# (sifat bukannya getter/setter Java; konvensi penamaan .NET) jadi ia terasa semula jadi dalam kod .NET. Sama ada anda mengumpulkan data untuk portfolio perusahaan, melakukan pemeriksaan kualiti pada jadual, atau membina jambatan antara CRM anda dan alat PMO, MPXJ.Net menyediakan asas yang boleh dipercayai dan berprestasi tinggi yang anda perlukan.
Mula Menggunakan MPXJ.NET
Cara yang disyorkan untuk memasang MPXJ.NET ialah melalui NuGet. Sila gunakan arahan berikut untuk pemasangan yang lancar.
Pasang MPXJ.NET melalui NuGet
NuGet\Install-Package MPXJ.Net -Version 14.5.2
Anda boleh memuat turun secara langsung dari halaman GitHub
Cipta dan Urus Projek melalui .NET
MPXJ.NET sumber terbuka telah menyediakan beberapa ciri penting untuk mengendalikan fail projek dalam aplikasi .NET. Selain membaca, anda boleh mencipta fail projek baru dari awal: menentukan sifat projek (tajuk, pengarang, tarikh mula), menambah kalendar dan pengecualian, menambah tugas (dengan jangka masa, tarikh mula, medan berangka), menambah sumber dan penugasan, mencipta kebergantungan (tugas A mendahului tugas B), dan kemudian menyimpan ke format fail (contohnya, MSPDI atau MPX) yang boleh dibuka oleh MS Project atau alat lain. Berikut ialah contoh mudah yang menunjukkan cara mencipta projek baru dalam aplikasi .NET.
Bagaimana untuk Membuat Projek Baru dan Menulisnya dalam Format XML melalui Perpustakaan .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}");
}
Pembacaan Fail Projek Universal melalui C#
Kekuatan utama perpustakaan MPXJ.NET ialah keupayaannya untuk memuat dan membaca pelbagai format dengan API yang mudah dan konsisten. Perpustakaan ini telah menyertakan sokongan untuk mengesan format fail secara automatik berdasarkan sambungan dan kandungan fail. Kaedah Read mengembalikan objek ProjectFile, yang merupakan bekas utama untuk semua entiti projek lain seperti tugas, sumber, dan penugasan. Corak mudah ini berfungsi dengan cara yang sama untuk fail XER, fail XML, atau mana-mana format yang disokong. Contoh berikut menunjukkan cara melakukannya dengan mudah.
Bagaimana untuk Memuat dan Membaca Fail Projek MPP melalui 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}");
}
Penukaran Fail Projek melalui API .NET
MPXJ.NET sumber terbuka telah menyertakan sokongan lengkap untuk menukar fail projek ke format fail sokongan lain dalam aplikasi .NET. Oleh kerana keupayaannya berbilang format, MPXJ.NET sering digunakan untuk menukar fail projek dari satu format ke format lain dalam aplikasi .NET. Contohnya: baca fail .MPP, kemudian tulis ke .MPX atau .MSPDI atau bahkan XER/PMXML (bergantung pada sokongan). README menyediakan contoh penukaran.
Bagaimana untuk Membaca dan Menukar Fail Projek dalam Aplikasi .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}");
}
}
}
Mengakses Tugasan Projek dan Hierarki
Projek terdiri daripada tugas, dan MPXJ.NET membolehkan anda menelusuri keseluruhan Struktur Pecahan Kerja (WBS). Pustaka ini menyokong pelbagai ciri untuk mengendalikan tugas dan data projek, seperti menyenaraikan semua tugas dalam projek, melihat ringkasan tugas, Tempoh tugas, Mula dan Selesai sesuatu tugas, Peratusan0Selesai tugas, dan banyak lagi. Contoh berikut menunjukkan bagaimana pembangun dapat mengulangi semua tugas menggunakan arahan .NET.
Bagaimana untuk Mengulangi Semua Tugasan Projek melalui 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}");
}
}