API quản lý dự án .NET mã nguồn mở để xử lý các dự án trong Redmine

Thư viện Quản lý Dự án C# .NET hàng đầu cho phép các nhà phát triển tạo, đọc, thao tác và chuyển đổi các tệp dự án sang các định dạng khác như MPP, MPT, XML, XER, PMXML và nhiều hơn nữa.

MPXJ.NET là gì?

Quản lý dữ liệu dự án thường đồng nghĩa với việc phải đối mặt với một loạt các định dạng tệp từ các công cụ như Microsoft Project, Primavera P6 và các công cụ khác. Nếu bạn là một nhà phát triển .NET muốn đọc, ghi và thao tác dữ liệu dự án một cách lập trình mà không bị giới hạn vào một nền tảng duy nhất, MPXJ.NET là thư viện mã nguồn mở mạnh mẽ mà bạn đã tìm kiếm. Thư viện này đã bao gồm một số tính năng quan trọng để làm việc với các tệp quản lý dự án, chẳng hạn như tạo dự án mới, đọc các tệp dự án hiện có, chuyển đổi giữa các định dạng, thao tác dữ liệu lịch trình, làm việc với nguồn lực và phân công, một cách lập trình.

MPXJ.NET là một wrapper .NET mã nguồn mở quanh thư viện Java MPXJ (được quản lý bởi Jon Iles). Nó cho phép các nhà phát triển .NET—C#, VB.NET, v.v.—đọc, ghi và thao tác các tệp lịch trình dự án bằng các kiểu và quy ước C# quen thuộc. Thư viện MPXJ hỗ trợ nhiều định dạng lịch và dự án như MPP, MPX, MSPDI XML, XER, cơ sở dữ liệu P6, Planner XML, v.v. Mặc dù MPXJ ban đầu dựa trên Java, MPXJ.Net bao bọc nó và trình bày các quy ước C# (thuộc tính thay vì getter/setter Java; quy ước đặt tên .NET) nên cảm giác tự nhiên trong mã .NET. Cho dù bạn đang tổng hợp dữ liệu cho danh mục doanh nghiệp, thực hiện kiểm tra chất lượng trên các lịch trình, hay xây dựng cầu nối giữa CRM và công cụ của PMO, MPXJ.Net cung cấp nền tảng đáng tin cậy, hiệu suất cao mà bạn cần.

Previous Next

Bắt đầu với MPXJ.NET

Cách khuyến nghị để cài đặt MPXJ.NET là thông qua NuGet. Vui lòng sử dụng các lệnh sau để cài đặt suôn sẻ.

Cài đặt MPXJ.NET qua NuGet

NuGet\Install-Package MPXJ.Net -Version 14.5.2

Bạn có thể tải xuống trực tiếp từ trang GitHub

Tạo và thao tác dự án qua .NET

MPXJ.NET mã nguồn mở đã cung cấp một số tính năng quan trọng để xử lý các tệp dự án trong các ứng dụng .NET. Ngoài việc đọc, bạn có thể tạo các tệp dự án mới từ đầu: định nghĩa các thuộc tính dự án (tiêu đề, tác giả, ngày bắt đầu), thêm lịch và các ngoại lệ, thêm nhiệm vụ (với thời lượng, ngày bắt đầu, các trường số), thêm nguồn lực và phân công, tạo các phụ thuộc (nhiệm vụ A trước nhiệm vụ B), và sau đó lưu dưới định dạng tệp (ví dụ: MSPDI hoặc MPX) có thể được mở bằng MS Project hoặc các công cụ khác. Dưới đây là một ví dụ đơn giản minh họa cách tạo một dự án mới trong các ứng dụng .NET.

Cách tạo một dự án mới và ghi nó ở định dạng XML thông qua Thư viện .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 tệp dự án đa dạng qua C#

Sức mạnh chính của thư viện MPXJ.NET là khả năng tải và đọc một số lượng lớn các định dạng với một API đơn giản và nhất quán. Thư viện đã bao gồm hỗ trợ tự động phát hiện định dạng tệp dựa trên phần mở rộng và nội dung của tệp. Phương thức Read trả về một đối tượng ProjectFile, là container gốc cho tất cả các thực thể dự án khác như nhiệm vụ, nguồn lực và phân công. Mẫu đơn giản này hoạt động giống hệt cho tệp XER, tệp XML, hoặc bất kỳ định dạng nào được hỗ trợ. Ví dụ sau đây cho thấy cách thực hiện một cách dễ dàng.

Cách tải và đọc tệp dự án MPP thông qua 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}");
}

           

Chuyển đổi tệp dự án qua API .NET

MPXJ.NET mã nguồn mở đã bao gồm hỗ trợ đầy đủ cho việc chuyển đổi các tệp dự án sang các định dạng tệp hỗ trợ khác trong các ứng dụng .NET. Nhờ khả năng đa định dạng, MPXJ.NET thường được sử dụng để chuyển đổi tệp dự án từ định dạng này sang định dạng khác trong các ứng dụng .NET. Ví dụ: đọc tệp .MPP, sau đó ghi ra .MPX hoặc .MSPDI hoặc thậm chí XER/PMXML (tùy thuộc vào hỗ trợ). Tệp README cung cấp ví dụ về việc chuyển đổi.

Cách đọc và chuyển đổi tệp dự án trong các ứng dụng .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}");
        }
    }
}
           

Truy cập các nhiệm vụ và cấu trúc dự án

Các dự án được tạo thành từ các nhiệm vụ, và MPXJ.NET cho phép bạn duyệt toàn bộ Cấu trúc Phân chia Công việc (WBS). Thư viện hỗ trợ nhiều tính năng cho việc xử lý các nhiệm vụ và dữ liệu dự án, chẳng hạn như liệt kê tất cả các nhiệm vụ trong dự án, xem tóm tắt nhiệm vụ, thời lượng nhiệm vụ, ngày bắt đầu và kết thúc của một nhiệm vụ, phần trăm Hoàn thành của nhiệm vụ, và nhiều hơn nữa. Ví dụ dưới đây minh họa cách các nhà phát triển có thể lặp qua tất cả các nhiệm vụ bằng các lệnh .NET.

Cách lặp qua tất cả các nhiệm vụ của dự án thông qua 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}");
    }
}
           
 Tiếng Việt