
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:
- Adres URL serwera projektu, np. https://contoso.sharepoint.com
- Domena, np. contoso.com
- Nazwa użytkownika
- Hasło
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.
- Utwórz instancję klasy NetworkCredential i zainicjuj ją za pomocą poświadczeń.
- Utwórz obiekt klasy ProjectServerCredentials i zainicjuj go adresem URL serwera projektu oraz obiektem NetworkCredential.
- Utwórz obiekt klasy ProjectServerManager i pobierz listę projektów metodą ProjectServerManager.GetProjectList().
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:
- Ustaw poświadczenia, aby połączyć się z Project Online przy użyciu ProjectServerCredentials.
- Utwórz i zainicjuj obiekt ProjectServerManager.
- Pobierz listę projektów za pomocą metody ProjectServerManager.GetProjectList().
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:
- Ustaw poświadczenia, aby połączyć się z Project Online przy użyciu ProjectServerCredentials.
- Załaduj plik projektu (.mpp) przy użyciu klasy Project.
- Utwórz i zainicjuj obiekt ProjectServerManager.
- Utwórz projekt za pomocą metody ProjectServerManager.CreateNewProject().
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.