রেডমাইনে প্রকল্প পরিচালনার জন্য ওপেন সোর্স .NET প্রকল্প ব্যবস্থাপনা API
শীর্ষস্থানীয় C# .NET প্রকল্প ব্যবস্থাপনা লাইব্রেরি ডেভেলপারদেরকে প্রকল্প ফাইল তৈরি, পড়া, পরিবর্তন এবং MPP, MPT, XML, XER, PMXML ইত্যাদি অন্যান্য ফরম্যাটে রূপান্তর করার সুযোগ দেয়।
MPXJ.NET কি?
প্রকল্পের ডেটা পরিচালনা করা প্রায়ই Microsoft Project, Primavera P6 এবং অন্যান্য টুলের বহু ফাইল ফরম্যাটের সঙ্গে লড়াই করার অর্থ হয়। যদি আপনি একটি .NET ডেভেলপার হন এবং একক প্ল্যাটফর্মে আটকে না থেকে প্রোগ্রাম্যাটিকভাবে প্রকল্পের ডেটা পড়া, লেখা এবং পরিবর্তন করতে চান, তবে MPXJ.NET হল শক্তিশালী, ওপেন সোর্স লাইব্রেরি যা আপনি খুঁজছিলেন। এই লাইব্রেরিতে প্রকল্প ব্যবস্থাপনা ফাইলের সঙ্গে কাজ করার জন্য বেশ কিছু গুরুত্বপূর্ণ ফিচার অন্তর্ভুক্ত রয়েছে, যেমন নতুন প্রকল্প তৈরি করা, বিদ্যমান প্রকল্প ফাইল পড়া, ফরম্যাটের মধ্যে রূপান্তর করা, সময়সূচি ডেটা পরিবর্তন করা, রিসোর্স এবং অ্যাসাইনমেন্টের সঙ্গে কাজ করা, প্রোগ্রাম্যাটিকভাবে।
MPXJ.NET হল একটি ওপেন-সোর্স .NET র্যাপার যা জাভা লাইব্রেরি MPXJ (জন আইলেস পরিচালিত) এর চারপাশে তৈরি। এটি .NET ডেভেলপারদের—C#, VB.NET ইত্যাদি—কে প্রকল্প-সময়সূচি ফাইলগুলি পড়া, লেখা এবং পরিচালনা করতে দেয়, আইডিয়োম্যাটিক C# টাইপ এবং কনভেনশন ব্যবহার করে। MPXJ লাইব্রেরি অনেক সময়সূচি এবং প্রকল্প ফরম্যাট সমর্থন করে যেমন MPP, MPX, MSPDI XML, XER, P6 ডেটাবেস, Planner XML ইত্যাদি। যদিও MPXJ মূলত জাভা-ভিত্তিক, MPXJ.Net এটি র্যাপ করে এবং C# কনভেনশন (প্রপার্টি, জাভা গেটার/সেটার নয়; .NET নামকরণ কনভেনশন) উপস্থাপন করে যাতে এটি .NET কোডে স্বাভাবিকভাবে অনুভূত হয়। আপনি যদি এন্টারপ্রাইজ পোর্টফোলিওর জন্য ডেটা সংগ্রহ করেন, সময়সূচিতে গুণগত পরীক্ষা করেন, অথবা আপনার CRM এবং PMO টুলের মধ্যে একটি সেতু গড়ে তোলেন, MPXJ.Net নির্ভরযোগ্য, উচ্চ-প্রদর্শনশীল ভিত্তি প্রদান করে যা আপনার প্রয়োজন।
MPXJ.NET দিয়ে শুরু করা
MPXJ.NET ইনস্টল করার সুপারিশকৃত পদ্ধতি হল NuGet এর মাধ্যমে। মসৃণ ইনস্টলেশনের জন্য দয়া করে নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন।
NuGet এর মাধ্যমে MPXJ.NET ইনস্টল করুন
NuGet\Install-Package MPXJ.Net -Version 14.5.2
আপনি সরাসরি GitHub পৃষ্ঠা থেকে ডাউনলোড করতে পারেন
.NET এর মাধ্যমে প্রকল্প তৈরি এবং পরিবর্তন করুন
ওপেন সোর্স MPXJ.NET .NET অ্যাপ্লিকেশনগুলোর মধ্যে প্রজেক্ট ফাইল হ্যান্ডল করার জন্য বেশ কিছু গুরুত্বপূর্ণ ফিচার প্রদান করে। রিডিং ছাড়াও, আপনি শূন্য থেকে নতুন প্রজেক্ট ফাইল তৈরি করতে পারেন: প্রজেক্টের প্রপার্টি (শিরোনাম, লেখক, শুরুর তারিখ) নির্ধারণ করুন, ক্যালেন্ডার এবং এক্সসেপশন যোগ করুন, টাস্ক (সময়কাল, শুরুর তারিখ, সংখ্যাসূচক ফিল্ড) যোগ করুন, রিসোর্স এবং অ্যাসাইনমেন্ট যোগ করুন, ডিপেনডেন্সি তৈরি করুন (টাস্ক A টাস্ক B‑এর আগে থাকে), এবং তারপর একটি ফাইল ফরম্যাটে (যেমন, MSPDI বা MPX) সংরক্ষণ করুন যা MS Project বা অন্যান্য টুল দ্বারা খোলা যায়। এখানে একটি সহজ উদাহরণ রয়েছে যা দেখায় কীভাবে .NET অ্যাপ্লিকেশনের মধ্যে নতুন প্রজেক্ট তৈরি করা যায়।
কিভাবে একটি নতুন প্রকল্প তৈরি করে .NET লাইব্রেরি ব্যবহার করে XML ফরম্যাটে লিখবেন?
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 ফাইল বা অন্য যেকোনো সমর্থিত ফরম্যাটের জন্য একইভাবে কাজ করে। নিম্নলিখিত উদাহরণটি দেখায় কীভাবে সহজে এটি সম্পন্ন করা যায়।
কিভাবে .NET API ব্যবহার করে একটি MPP প্রকল্প ফাইল লোড এবং পড়বেন?
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) অতিক্রম করতে দেয়। লাইব্রেরিটি প্রজেক্টের কাজ এবং ডেটা পরিচালনার জন্য বিভিন্ন ফিচার সমর্থন করে, যেমন প্রজেক্টের সব কাজের তালিকা, কাজের সারাংশ দেখানো, কাজের সময়কাল, কাজের শুরুর এবং শেষের সময়, Percentage0Complete, এবং আরও অনেক কিছু। নিম্নের উদাহরণটি দেখায় কীভাবে ডেভেলপাররা .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}");
}
}