API Manajemen Proyek .NET Sumber Terbuka untuk Menangani Proyek di Redmine
Perpustakaan Manajemen Proyek C# .NET terkemuka memungkinkan Pengembang untuk Membuat, Membaca, Memanipulasi, dan Mengonversi File Proyek ke Format Lain seperti MPP, MPT, XML, XER, PMXML, dan banyak lagi.
Apa itu MPXJ.NET?
Mengelola data proyek sering berarti berurusan dengan banyak format file dari alat seperti Microsoft Project, Primavera P6, dan lainnya. Jika Anda seorang pengembang .NET yang ingin membaca, menulis, dan memanipulasi data proyek secara programatik tanpa terikat pada satu platform, MPXJ.NET adalah perpustakaan sumber terbuka yang kuat yang telah Anda cari. Perpustakaan ini mencakup beberapa fitur penting untuk bekerja dengan file manajemen proyek, seperti membuat proyek baru, membaca file proyek yang ada, mengonversi antar format, memanipulasi data jadwal, bekerja dengan sumber daya dan penugasan, secara programatik.
MPXJ.NET adalah pembungkus .NET sumber terbuka di sekitar pustaka Java MPXJ (Dikelola oleh Jon Iles). Ini memungkinkan pengembang .NET—C#, VB.NET, dll—untuk membaca, menulis, dan memanipulasi file jadwal proyek menggunakan tipe dan konvensi C# yang idiomatik. Pustaka MPXJ mendukung banyak format jadwal dan proyek seperti MPP, MPX, MSPDI XML, XER, basis data P6, Planner XML, dll. Meskipun MPXJ awalnya berbasis Java, MPXJ.Net membungkusnya dan menyajikan konvensi C# (properti alih‑alih getter/setter Java; konvensi penamaan .NET) sehingga terasa alami dalam kode .NET. Baik Anda mengumpulkan data untuk portofolio perusahaan, melakukan pemeriksaan kualitas pada jadwal, atau membangun jembatan antara CRM Anda dan alat PMO, MPXJ.Net menyediakan fondasi andal dan berperforma tinggi yang Anda butuhkan.
Memulai dengan MPXJ.NET
Cara yang disarankan untuk menginstal MPXJ.NET adalah melalui NuGet. Silakan gunakan perintah berikut untuk instalasi yang lancar.
Instal MPXJ.NET melalui NuGet
NuGet\Install-Package MPXJ.Net -Version 14.5.2
Anda dapat mengunduhnya langsung dari halaman GitHub
Membuat dan Memanipulasi Proyek melalui .NET
MPXJ.NET sumber terbuka menyediakan beberapa fitur penting untuk menangani file proyek di dalam aplikasi .NET. Selain membaca, Anda dapat membuat file proyek baru dari awal: mendefinisikan properti proyek (judul, penulis, tanggal mulai), menambahkan kalender dan pengecualian, menambahkan tugas (dengan durasi, tanggal mulai, bidang numerik), menambahkan sumber daya dan penugasan, membuat ketergantungan (tugas A mendahului tugas B), dan kemudian menyimpan ke format file (mis., MSPDI atau MPX) yang dapat dibuka oleh MS Project atau alat lainnya. Berikut adalah contoh sederhana yang menunjukkan cara membuat proyek baru di dalam aplikasi .NET.
Bagaimana Membuat Proyek Baru dan Menuliskannya dalam Format XML melalui .NET Library?
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}");
}
Membaca File Proyek Universal melalui C#
Kekuatan utama pustaka MPXJ.NET adalah kemampuannya untuk memuat dan membaca sejumlah besar format dengan API yang sederhana dan konsisten. Pustaka ini telah menyertakan dukungan untuk secara otomatis mendeteksi format file berdasarkan ekstensi dan kontennya. Metode Read mengembalikan objek ProjectFile, yang merupakan wadah utama untuk semua entitas proyek lainnya seperti tugas, sumber daya, dan penugasan. Pola sederhana ini bekerja secara identik untuk file XER, file XML, atau format lain yang didukung. Contoh berikut menunjukkan cara melakukannya dengan mudah.
Bagaimana Memuat dan Membaca File Proyek MPP melalui .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}");
}
Konversi File Proyek melalui API .NET
MPXJ.NET sumber terbuka telah menyertakan dukungan lengkap untuk mengonversi file proyek ke format file lain di dalam aplikasi .NET. Karena kemampuan multi-formatnya, MPXJ.NET sering digunakan untuk mengonversi file proyek dari satu format ke format lain di dalam aplikasi .NET. Misalnya: membaca file .MPP, kemudian menulis ke .MPX atau .MSPDI atau bahkan XER/PMXML (tergantung dukungan). README menyediakan contoh konversi.
Bagaimana Membaca dan Mengonversi File Proyek di 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 Tugas Proyek dan Hierarki
Proyek terdiri dari tugas, dan MPXJ.NET memungkinkan Anda menelusuri seluruh Work Breakdown Structure (WBS). Perpustakaan ini mendukung berbagai fitur untuk menangani tugas dan data proyek, seperti daftar semua tugas dalam proyek, melihat ringkasan tugas, Durasi tugas, Mulai dan Selesai sebuah tugas, Persentase Penyelesaian tugas, dan banyak lagi. Contoh berikut menunjukkan bagaimana pengembang dapat mengiterasi semua tugas menggunakan perintah .NET.
Bagaimana Mengiterasi Semua Tugas Proyek melalui 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}");
}
}