Project Online และ Project Server เป็นโซลูชันการจัดการโครงการและพอร์ตโฟลิโอที่มีคุณลักษณะหลากหลายซึ่งให้บริการโดย Microsoft โซลูชันทั้งสองนำเสนอคุณลักษณะต่างๆ เกือบใกล้เคียงกันสำหรับการสร้างและจัดการโครงการ อย่างไรก็ตาม โซลูชันทั้งสองจะแตกต่างกันโดยขึ้นอยู่กับว่าโซลูชันใดเหมาะกับความต้องการของคุณ ตัวอย่างเช่น หากคุณต้องการโซลูชันภายในองค์กรที่มีการควบคุมฮาร์ดแวร์และซอฟต์แวร์มากขึ้น คุณอาจเลือกใช้ Project Server ในทางกลับกัน Project Online ทำหน้าที่เป็นอินสแตนซ์บนคลาวด์ของ Project Server โดยไม่ต้องมีโครงสร้างพื้นฐานของคุณเอง
อาจมีกรณีที่จำเป็นต้องเข้าถึงข้อมูลของโครงการจาก Project Server/Online จากภายในแอปพลิเคชันของคุณ เพื่อจัดการกับกรณีดังกล่าว ในบทความนี้ ฉันจะแสดงวิธีสร้าง/อ่านโครงการใน/จาก Project Server หรือ Project Online ภายในแอปพลิเคชัน .NET (ASP.NET เป็นต้น) หรือบริการบนเว็บโดยใช้ C# .
C# API สำหรับ Project Server/ออนไลน์
สำหรับการสร้างโปรเจ็กต์ใหม่และอ่านโปรเจ็กต์ที่มีอยู่จาก Project Server/Online เราจะใช้ Aspose.Tasks for .NET เป็นไลบรารีคลาสข้ามแพลตฟอร์มสำหรับการอ่านและเขียนไฟล์ MS Project โดยทางโปรแกรมในแอปพลิเคชัน .NET Standard หรือ .NET Core API นั้นโฮสต์อยู่บน NuGet เช่นเดียวกับแพ็คเกจ MSI และซิป DLL ในส่วน ดาวน์โหลด
การทำงานกับ Project Server
ในส่วนนี้ ฉันจะแสดงวิธีเชื่อมต่อกับ Project Server และอ่านหรือสร้างโปรเจ็กต์ ในการเชื่อมต่อกับ Project Server คุณจำเป็นต้องทราบรายละเอียดต่อไปนี้:
- URL ของ Project Server เช่น https://contoso.sharepoint.com
- โดเมน เช่น contoso.com
- ชื่อผู้ใช้
- รหัสผ่าน
อ่านโครงการจากเซิร์ฟเวอร์โครงการใน C
ต่อไปนี้เป็นขั้นตอนในการเชื่อมต่อกับ Project Server และดึงรายการโครงการออกมา
- สร้างอินสแตนซ์ NetworkCredential คลาสและเริ่มต้นด้วยข้อมูลประจำตัว
- สร้างวัตถุของคลาส ProjectServerCredentials และเริ่มต้นด้วย URL ของเซิร์ฟเวอร์โครงการและวัตถุ NetworkCredential
- สร้างวัตถุของคลาส ProjectServerManager และรับรายการของโครงการโดยใช้เมธอด ProjectServerManager.GetProjectList()
ตัวอย่างรหัสต่อไปนี้แสดงวิธีการอ่านโครงการจาก Project Server ใน C#
string url = "https://contoso.sharepoint.com";
string domain = "CONTOSO.COM";
string userName = "Administrator";
string password = "MyPassword";
NetworkCredential windowsCredentials = new NetworkCredential(userName, password, domain);
ProjectServerCredentials projectServerCredentials = new ProjectServerCredentials(url, windowsCredentials);
ProjectServerManager manager = new ProjectServerManager(projectServerCredentials);
var list = manager.GetProjectList();
foreach (var projectInfo in list)
{
Console.WriteLine("{0} - {1} - {2}", projectInfo.Id, projectInfo.CreatedDate, projectInfo.Name);
}
สร้าง Project บน Project Server ใน C#
การสร้างโครงการบน Project Server นั้นง่ายเหมือนพาย เพียงเชื่อมต่อกับ Project Server ด้วยวิธีเดียวกับที่คุณทำในตัวอย่างก่อนหน้า โหลดไฟล์โครงการ (.mpp) โดยใช้คลาส Project และเรียกเมธอด ProjectServerManager.CreateNewProject()
ตัวอย่างรหัสต่อไปนี้แสดงวิธีการสร้างโครงการใหม่บน Project Server ใน C#
Project project = new Project("New Project.mpp");
NetworkCredential windowsCredentials = new NetworkCredential("Administrator", "MyPassword", "CONTOSO.COM");
ProjectServerCredentials projectServerCredentials = new ProjectServerCredentials("https://contoso.sharepoint.com", windowsCredentials);
ProjectServerManager manager = new ProjectServerManager(projectServerCredentials);
manager.CreateNewProject(project);
การทำงานกับ Project Online
การทำงานกับ Project Online ค่อนข้างคล้ายกับการทำงานกับ Project Server และแตกต่างกันที่การสร้างการเชื่อมต่อเท่านั้น ในการเชื่อมต่อกับ Project Online คุณจำเป็นต้องทราบรายละเอียดต่อไปนี้:
- URL
- ชื่อผู้ใช้
- รหัสผ่าน
อ่านโครงการจาก Project Online ใน C#
ต่อไปนี้เป็นขั้นตอนในการอ่านโครงการจาก Project Online:
- ตั้งค่าข้อมูลรับรองเพื่อเชื่อมต่อกับ Project Online โดยใช้ ProjectServerCredentials
- สร้างและเริ่มต้นวัตถุ ProjectServerManager
- เรียกรายการโครงการโดยใช้เมธอด ProjectServerManager.GetProjectList()
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการเรียกรายการโครงการจาก Project Online
const string SharepointDomainAddress = "https://contoso.sharepoint.com";
const string UserName = "admin@contoso.onmicrosoft.com";
const string Password = "MyPassword";
ProjectServerCredentials credentials = new ProjectServerCredentials(SharepointDomainAddress, UserName, Password);
ProjectServerManager manager = new ProjectServerManager(credentials);
IEnumerable<ProjectInfo> list = manager.GetProjectList();
foreach (var info in list)
{
Project project = manager.GetProject(info.Id);
Console.WriteLine("{0} - {1} - {2}", info.Name, info.CreatedDate, info.LastSavedDate);
Console.WriteLine("Resources count: {0}", project.Resources.Count);
// ผู้ใช้สามารถอ่านโครงการเป็นสตรีมข้อมูลดิบ
var stream = manager.GetProjectRawData(info.Id);
// ทำงานกับข้อมูลโครงการดิบ
}
สร้างโครงการบน Project Online ใน C#
ต่อไปนี้เป็นขั้นตอนในการสร้างโครงการใหม่บน Project Online:
- ตั้งค่าข้อมูลรับรองเพื่อเชื่อมต่อกับ Project Online โดยใช้ ProjectServerCredentials
- โหลดไฟล์โครงการ (.mpp) โดยใช้คลาส Project
- สร้างและเริ่มต้นวัตถุ ProjectServerManager
- สร้างโครงการโดยใช้เมธอด ProjectServerManager.CreateNewProject()
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการสร้างโครงการใหม่บน Project Online ใน C#
string sharepointDomainAddress = "https://contoso.sharepoint.com";
string userName = "admin@contoso.onmicrosoft.com";
string password = "MyPassword";
ProjectServerCredentials credentials = new ProjectServerCredentials(sharepointDomainAddress, userName, password);
Project project = new Project("New Project.mpp");
ProjectServerManager manager = new ProjectServerManager(credentials);
manager.CreateNewProject(project);
เรียนรู้เพิ่มเติมเกี่ยวกับ Aspose.Tasks for .NET
คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับการจัดการโครงการโดยใช้ Aspose.Tasks for .NET ได้จาก เอกสารประกอบ