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/Online

Для створення нових проектів і читання існуючих із 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
  • Ім’я користувача
  • Пароль

Читання проектів із Project Server у 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 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 на 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 з документації.