Project Server และ Project Online ใน C# ASP.NET

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

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 ได้จาก เอกสารประกอบ