Project Server und Project Online in C# ASP.NET

Project Online und Project Server sind die funktionsreichen Projekt und Portfoliomanagementlösungen von Microsoft. Beide Lösungen bieten fast einen ähnlichen Funktionsumfang zum Erstellen und Verwalten von Projekten, unterscheiden sich jedoch je nachdem, welche Lösung Ihren Anforderungen am besten entspricht. Wenn Sie beispielsweise die Vor-Ort-Lösung mit mehr Kontrolle über die Hardware und Software wünschen, können Sie sich für Project Server entscheiden. Andererseits dient Project Online als Cloud-basierte Instanz von Project Server, ohne dass eine eigene Infrastruktur erforderlich ist.

Es kann vorkommen, dass Sie von Ihren Anwendungen aus auf die Informationen der Projekte von Project Server/Online zugreifen müssen. Um mit solchen Fällen umzugehen, zeige ich Ihnen in diesem Artikel, wie Sie die Projekte auf/von Project Server oder Project Online in Ihren .NET Anwendungen (ASP.NET usw.) oder Webdiensten mit C# erstellen/lesen. .

C# API für Project Server/Online

Um die neuen Projekte zu erstellen und die vorhandenen aus Project Server/Online zu lesen, verwenden wir Aspose.Tasks for .NET. Es ist eine plattformübergreifende Klassenbibliothek zum programmgesteuerten Lesen und Schreiben von MS Project Dateien in .NET Standard oder .NET Core Anwendungen. Die API wird auf NuGet gehostet und ist als MSI-Paket und gezippte DLL im Abschnitt Downloads verfügbar.

Arbeiten mit Project Server

In diesem Abschnitt zeige ich Ihnen, wie Sie eine Verbindung mit dem Project Server herstellen und die Projekte lesen oder erstellen. Um sich mit dem Project Server zu verbinden, müssen Sie die folgenden Details kennen:

Lesen Sie Projekte aus Project Server in C#

Im Folgenden sind die Schritte zum Herstellen einer Verbindung mit Project Server und zum Abrufen der Projektliste daraus aufgeführt.

Das folgende Codebeispiel zeigt, wie Projekte aus Project Server in C# gelesen werden.

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

Projekt auf Project Server in C# erstellen

Das Erstellen eines Projekts auf Project Server ist kinderleicht. Stellen Sie einfach auf die gleiche Weise wie im vorherigen Beispiel eine Verbindung mit Project Server her, laden Sie die Projektdatei (.mpp) mithilfe der Klasse Project und rufen Sie die Methode ProjectServerManager.CreateNewProject() auf.

Das folgende Codebeispiel zeigt, wie Sie ein neues Projekt auf Project Server in C# erstellen.

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

Arbeiten mit Project Online

Die Arbeit mit Project Online ist der Arbeit mit Project Server sehr ähnlich und unterscheidet sich nur im Herstellen der Verbindung. Um eine Verbindung mit Project Online herzustellen, müssen Sie die folgenden Details kennen:

  • URL
  • Nutzername
  • Passwort

Projekte aus Project Online in C# lesen

Im Folgenden sind die Schritte zum Lesen von Projekten aus Project Online aufgeführt:

Das folgende Codebeispiel zeigt, wie die Liste der Projekte aus Project Online abgerufen wird.

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

    // ein Benutzer kann das Projekt als Rohdatenstrom lesen
    var stream = manager.GetProjectRawData(info.Id);

    // Arbeiten mit rohen Projekt daten
}

Erstellen Sie ein Projekt in Project Online in C#

Im Folgenden sind die Schritte zum Erstellen eines neuen Projekts in Project Online aufgeführt:

Das folgende Codebeispiel zeigt, wie Sie ein neues Projekt in Project Online in C# erstellen.

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

Erfahren Sie mehr über Aspose.Tasks for .NET

Weitere Informationen zum Projektmanagement mit Aspose.Tasks for .NET finden Sie in der Dokumentation.