Project Server và Project Online trong C# ASP.NET

Project Online và Project Server là các giải pháp quản lý danh mục đầu tư và dự án giàu tính năng do Microsoft cung cấp. Cả hai giải pháp đều cung cấp hầu hết các tính năng giống nhau để tạo và quản lý dự án, tuy nhiên, chúng khác nhau dựa trên giải pháp nào phù hợp với yêu cầu của bạn. Ví dụ: nếu bạn muốn giải pháp tại chỗ có nhiều quyền kiểm soát hơn đối với phần cứng và phần mềm thì bạn có thể chọn Project Server. Mặt khác, Project Online đóng vai trò là phiên bản Project Server dựa trên đám mây mà không yêu cầu cơ sở hạ tầng của riêng bạn.

Có thể xảy ra trường hợp cần truy cập thông tin của dự án từ Máy chủ dự án/Trực tuyến từ bên trong ứng dụng của bạn. Để giải quyết những trường hợp như vậy, trong bài viết này, tôi sẽ chỉ cho bạn cách tạo/đọc các dự án trên/từ Project Server hoặc Project Online trong các ứng dụng .NET (ASP.NET, v.v.) hoặc dịch vụ web của bạn bằng C# .

API C# cho Máy chủ Dự án/Trực tuyến

Để tạo các dự án mới và đọc các dự án hiện có từ Project Server/Online, chúng ta sẽ sử dụng Aspose.Tasks for .NET. Nó là một thư viện lớp đa nền tảng để đọc và ghi các tệp MS Project theo chương trình trong các ứng dụng .NET Standard hoặc .NET Core. API được lưu trữ trên NuGet cũng như có sẵn dưới dạng gói MSI và DLL đã nén trong phần Tải xuống.

Làm việc với Máy chủ dự án

Trong phần này, tôi sẽ chỉ cho bạn cách kết nối với Project Server và đọc hoặc tạo các dự án. Để kết nối với Project Server, bạn cần biết các chi tiết sau:

Đọc Dự án từ Máy chủ Dự án trong C#

Sau đây là các bước để kết nối với Project Server và truy xuất danh sách dự án từ nó.

Mẫu mã sau đây cho biết cách đọc dự án từ Máy chủ dự án trong 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);
}

Tạo Project trên Project Server trong C#

Tạo một dự án trên Project Server đơn giản như một chiếc bánh. Chỉ cần kết nối với Máy chủ dự án giống như cách bạn đã thực hiện trong ví dụ trước, tải tệp dự án (.mpp) bằng lớp Project và gọi phương thức ProjectServerManager.CreateNewProject().

Mẫu mã sau đây cho thấy cách tạo một dự án mới trên Project Server trong 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);

Làm việc với Dự án trực tuyến

Làm việc với Project Online khá giống với làm việc với Project Server và chỉ khác ở chỗ tạo kết nối. Để kết nối với Project Online, bạn cần biết các chi tiết sau:

  • URL
  • tên tài khoản
  • Mật khẩu

Đọc Dự án từ Project Online bằng C#

Sau đây là các bước để đọc các dự án từ Project Online:

Mẫu mã sau đây cho biết cách truy xuất danh sách dự án từ 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);

    // người dùng có thể đọc dự án dưới dạng luồng dữ liệu thô
    var stream = manager.GetProjectRawData(info.Id);

    // làm việc với dữ liệu dự án thô
}

Tạo Project trên Project Online trong C#

Sau đây là các bước để tạo một dự án mới trên Project Online:

Mẫu mã sau đây cho biết cách tạo một dự án mới trên Project Online trong 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);

Tìm hiểu thêm về Aspose.T task cho .NET

Bạn có thể tìm hiểu thêm về quản lý dự án bằng cách sử dụng Aspose.Tasks for .NET từ tài liệu.