C# ASP.NET 中的 Project Server 和 Project Online

Project Online 和 Project Server 是 Microsoft 提供的功能丰富的项目和项目组合管理解决方案。这两种解决方案都为创建和管理项目提供了几乎相似的功能范围,但是,它们根据哪种解决方案非常适合您的要求而有所不同。例如,如果您想要对硬件和软件有更多控制的本地解决方案,那么您可以选择 Project Server。另一方面,Project Online 用作 Project Server 的基于云的实例,无需您自己的基础结构。

有时可能需要从应用程序中访问 Project Server/Online 中的项目信息。为了处理这种情况,在本文中,我将向您展示如何使用 C# 在您的 .NET 应用程序(ASP.NET 等)或 Web 服务中在 Project Server 或 Project Online 上创建/读取项目。 .

用于 Project Server/在线的 C# API

为了创建新项目并从 Project Server/Online 读取现有项目,我们将使用 Aspose.Tasks for .NET。它是一个跨平台的类库,用于在 .NET Standard 或 .NET Core 应用程序中以编程方式读写 MS Project 文件。该 API 托管在 NuGet 上,并且在 下载 部分中以 MSI 包和压缩 DLL 的形式提供。

使用项目服务器

在本节中,我将向您展示如何连接到 Project Server 并读取或创建项目。为了连接到 Project Server,您需要了解以下详细信息:

在 C# 中从 Project Server 读取项目

以下是连接到 Project Server 并从中检索项目列表的步骤。

以下代码示例显示如何使用 C# 从 Project Server 读取项目。

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);
}

在 C# 中的 Project Server 上创建项目

在 Project Server 上创建项目非常简单。只需以与上一个示例相同的方式连接到 Project Server,使用 Project 类加载项目文件 (.mpp) 并调用 ProjectServerManager.CreateNewProject() 方法。

以下代码示例展示了如何使用 C# 在 Project Server 上创建新项目。

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,您需要了解以下详细信息:

  • 网址
  • 用户名
  • 密码

在 C# 中从 Project Online 中读取项目

以下是从 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);

    // 使用原始项目数据
}

使用 C# 在 Project Online 上创建项目

以下是在 Project Online 上创建新项目的步骤:

以下代码示例演示如何使用 C# 在 Project Online 上创建新项目。

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 进行项目管理的信息。