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:
- Die URL von Project Server, dh https://contoso.sharepoint.com
- Domäne, dh contoso.com
- Nutzername
- Passwort
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.
- Instanziieren Sie die Klasse NetworkCredential und initialisieren Sie sie mit Anmeldeinformationen.
- Erstellen Sie ein Objekt der Klasse ProjectServerCredentials und initialisieren Sie es mit der URL des Projektservers und dem NetworkCredential objekt.
- Erstellen Sie ein Objekt der Klasse ProjectServerManager und rufen Sie eine Liste der Projekte mit der methode ProjectServerManager.GetProjectList() ab.
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:
- Legen Sie die Anmeldeinformationen für die Verbindung mit Project Online mithilfe von ProjectServerCredentials fest.
- Erstellen und initialisieren Sie das Objekt ProjectServerManager.
- Rufen Sie die Liste der Projekte mit der methode ProjectServerManager.GetProjectList() ab.
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:
- Legen Sie die Anmeldeinformationen für die Verbindung mit Project Online mithilfe von ProjectServerCredentials fest.
- Laden Sie die Projektdatei (.mpp) mit der Klasse Project.
- Erstellen und initialisieren Sie das Objekt ProjectServerManager.
- Erstellen Sie das Projekt mit der methode ProjectServerManager.CreateNewProject().
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.