Project Online och Project Server är de funktionsrika projekt- och portföljhanteringslösningarna som tillhandahålls av Microsoft. Båda lösningarna erbjuder nästan ett liknande utbud av funktioner för att skapa och hantera projekt, men de skiljer sig åt beroende på vilken lösning som passar bra med dina krav. Om du till exempel vill ha den lokala lösningen med mer kontroll över hårdvaran och mjukvaran kan du välja Project Server. Å andra sidan fungerar Project Online som en molnbaserad instans av Project Server utan att kräva din egen infrastruktur.
Det kan vara fallet när du behöver komma åt informationen om projekten från Project Server/Online från dina applikationer. För att hantera sådana fall kommer jag i den här artikeln att visa dig hur du skapar/läser projekten på/från Project Server eller Project Online i dina .NET-applikationer (ASP.NET, etc.) eller webbtjänster med C# .
C# API för Project Server/Online
För att skapa de nya projekten och läsa de befintliga från Project Server/Online kommer vi att använda Aspose.Tasks for .NET. Det är ett plattformsoberoende klassbibliotek för att läsa och skriva MS Project-filer programmatiskt i .NET Standard eller .NET Core-applikationer. API:et finns på NuGet och är tillgängligt som ett MSI-paket och zippad DLL i avsnittet Nedladdningar.
Arbeta med Project Server
I det här avsnittet kommer jag att visa dig hur du ansluter till projektservern och läser eller skapar projekten. För att ansluta till projektservern behöver du känna till följande detaljer:
- Project Servers URL dvs https://contoso.sharepoint.com
- Domän dvs contoso.com
- Användarnamn
- Lösenord
Läs projekt från Project Server i C#
Följande är stegen för att ansluta till Project Server och hämta projektlistan från den.
- Instantera klassen NetworkCredential och initiera den med referenser.
- Skapa ett objekt av klassen ProjectServerCredentials och initiera det med projektserverns URL och NetworkCredential-objekt.
- Skapa ett objekt av klassen ProjectServerManager och få en lista över projekten med metoden ProjectServerManager.GetProjectList().
Följande kodexempel visar hur man läser projekt från Project Server i 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);
}
Skapa projekt på Project Server i C#
Att skapa ett projekt på Project Server är enkelt som en plätt. Anslut helt enkelt till Project Server på samma sätt som du gjorde i föregående exempel, ladda projektfilen (.mpp) med klassen Project och anropa metoden ProjectServerManager.CreateNewProject().
Följande kodexempel visar hur man skapar ett nytt projekt på Project Server i 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);
Jobbar med Project Online
Att arbeta med Project Online är ganska likt att arbeta med Project Server och det skiljer sig bara i att skapa anslutningen. För att ansluta till Project Online behöver du känna till följande detaljer:
- URL
- Användarnamn
- Lösenord
Läs projekt från Project Online i C#
Följande är stegen för att läsa projekt från Project Online:
- Ställ in autentiseringsuppgifterna för att ansluta till Project Online med ProjectServerCredentials.
- Skapa och initiera objektet ProjectServerManager.
- Hämta listan över projekt med metoden ProjectServerManager.GetProjectList().
Följande kodexempel visar hur du hämtar listan över projekt från 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);
// en användare kan läsa projektet som rådataström
var stream = manager.GetProjectRawData(info.Id);
// arbeta med rå projektdata
}
Skapa ett projekt på Project Online i C#
Följande är stegen för att skapa ett nytt projekt på Project Online:
- Ställ in autentiseringsuppgifterna för att ansluta till Project Online med ProjectServerCredentials.
- Ladda projektfilen (.mpp) med klassen Project.
- Skapa och initierat ProjectServerManager objekt.
- Skapa projektet med metoden ProjectServerManager.CreateNewProject().
Följande kodexempel visar hur man skapar ett nytt projekt på Project Online i 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);
Läs mer om Aspose.Tasks för .NET
Du kan lära dig mer om projektledning med Aspose.Tasks för .NET från dokumentationen.