C#ASP.NETでのProjectServerとProjectOnline

ProjectOnlineおよびProjectServerは、Microsoftが提供する機能豊富なプロジェクトおよびポートフォリオ管理ソリューションです。どちらのソリューションも、プロジェクトを作成および管理するためのほぼ同様の範囲の機能を提供しますが、どちらのソリューションが要件に適しているかによって異なります。たとえば、ハードウェアとソフトウェアをより細かく制御できるオンプレミスソリューションが必要な場合は、ProjectServerを選択できます。一方、Project Onlineは、独自のインフラストラクチャを必要とせずに、ProjectServerのクラウドベースのインスタンスとして機能します。

アプリケーション内からProjectServer/Onlineからプロジェクトの情報にアクセスする必要がある場合があります。このような場合に対処するために、この記事では、C#を使用して.NETアプリケーション(ASP.NETなど)またはWebサービス内でProjectServerまたはProjectOnlineでプロジェクトを作成/読み取る方法を示します。 。

Project Server / Online用のC#API

新しいプロジェクトを作成し、Project Server / Onlineから既存のプロジェクトを読み取るには、Aspose.Tasks for .NETを使用します。これは、.NETStandardまたは.NETCoreアプリケーションでプログラムによってMSProjectファイルを読み書きするためのクロスプラットフォームのクラスライブラリです。 APIはNuGetでホストされており、ダウンロードセクションでMSIパッケージおよびzip形式のDLLとして利用できます。

ProjectServerの操作

このセクションでは、Project Serverに接続して、プロジェクトを読み取ったり作成したりする方法を説明します。 Project Serverに接続するには、次の詳細を知っている必要があります。

  • プロジェクトサーバーのURL、つまりhttps://contoso.sharepoint.com
  • ドメインすなわちcontoso.com
  • ユーザー名
  • パスワード

C#でProjectServerからプロジェクトを読み取る

以下は、Project Serverに接続し、そこからプロジェクトリストを取得する手順です。

次のコードサンプルは、C#でProjectServerからプロジェクトを読み取る方法を示しています。

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#でProjectServerにプロジェクトを作成する

ProjectServerでプロジェクトを作成するのは簡単です。前の例と同じ方法でProjectServerに接続し、Projectクラスを使用してプロジェクトファイル(.mpp)をロードし、ProjectServerManager.CreateNewProject()メソッドを呼び出すだけです。

次のコードサンプルは、C#のProjectServerで新しいプロジェクトを作成する方法を示しています。

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 Serverでの作業と非常によく似ており、接続の作成のみが異なります。 Project Onlineに接続するには、次の詳細を知っている必要があります。

  • URL
  • ユーザー名
  • パスワード

C#でProjectOnlineからプロジェクトを読む

ProjectOnlineからプロジェクトを読み取る手順は次のとおりです。

次のコードサンプルは、ProjectOnlineからプロジェクトのリストを取得する方法を示しています。

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#でProjectOnlineにプロジェクトを作成する

ProjectOnlineで新しいプロジェクトを作成する手順は次のとおりです。

次のコードサンプルは、C#のProjectOnlineで新しいプロジェクトを作成する方法を示しています。

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を使用したプロジェクト管理の詳細については、ドキュメントを参照してください。