Project Server i Project Online w C# ASP.NET

Project Online i Project Server to bogate w funkcje rozwiązania do zarządzania projektami i portfelami dostarczane przez firmę Microsoft. Oba rozwiązania oferują prawie podobny zakres funkcji do tworzenia projektów i zarządzania nimi, różnią się jednak w zależności od tego, które rozwiązanie najlepiej odpowiada Twoim wymaganiom. Na przykład, jeśli chcesz mieć rozwiązanie lokalne z większą kontrolą nad sprzętem i oprogramowaniem, możesz wybrać Project Server. Z drugiej strony Project Online służy jako chmurowa instancja Project Server bez konieczności posiadania własnej infrastruktury.

Może zajść potrzeba uzyskania dostępu do informacji o projektach z Project Server/Online z poziomu aplikacji. Aby poradzić sobie z takimi przypadkami, w tym artykule pokażę, jak tworzyć/odczytywać projekty na/z Project Server lub Project Online w ramach aplikacji .NET (ASP.NET itp.) lub usług sieciowych przy użyciu języka C# .

C# API dla Project Server/Online

Do tworzenia nowych projektów i odczytywania istniejących z Project Server/Online użyjemy Aspose.Tasks for .NET. Jest to międzyplatformowa biblioteka klas do programowego odczytu i zapisu plików MS Project w aplikacjach .NET Standard lub .NET Core. Interfejs API jest hostowany na NuGet, a także dostępny jako pakiet MSI i spakowana biblioteka DLL w sekcji Downloads.

Praca z serwerem projektu

W tej sekcji pokażę, jak połączyć się z serwerem projektów i czytać lub tworzyć projekty. Aby połączyć się z serwerem Project Server, musisz znać następujące szczegóły:

Czytaj projekty z Project Server w C#

Poniżej przedstawiono kroki, aby połączyć się z serwerem Project Server i pobrać z niego listę projektów.

Poniższy przykładowy kod pokazuje, jak odczytywać projekty z Project Server w języku 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);
}

Utwórz projekt na serwerze Project Server w języku C#

Tworzenie projektu na serwerze Project Server jest proste jak bułka z masłem. Po prostu połącz się z Project Server w taki sam sposób, jak w poprzednim przykładzie, załaduj plik projektu (.mpp) przy użyciu klasy Project i wywołaj metodę ProjectServerManager.CreateNewProject().

Poniższy przykładowy kod pokazuje, jak utworzyć nowy projekt na serwerze Project Server w języku 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);

Praca z Project Online

Praca z Project Online jest bardzo podobna do pracy z Project Server i różni się jedynie tworzeniem połączenia. Aby połączyć się z Project Online, musisz znać następujące szczegóły:

  • Adres URL
  • Nazwa użytkownika
  • Hasło

Odczytywanie projektów z usługi Project Online w języku C#

Poniżej przedstawiono kroki, aby odczytać projekty z usługi Project Online:

Poniższy przykładowy kod pokazuje, jak pobrać listę projektów z usługi 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);

    // użytkownik może odczytać projekt jako surowy strumień danych
    var stream = manager.GetProjectRawData(info.Id);

    // pracować z surowymi danymi projektu
}

Utwórz projekt w usłudze Project Online w języku C#

Poniżej przedstawiono kroki tworzenia nowego projektu w usłudze Project Online:

Poniższy przykładowy kod pokazuje, jak utworzyć nowy projekt w usłudze Project Online w języku 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);

Dowiedz się więcej o Aspose.Tasks dla platformy .NET

Możesz dowiedzieć się więcej o zarządzaniu projektami przy użyciu Aspose.Tasks for .NET z dokumentacji.