Project Online a Project Server jsou řešení pro správu projektů a portfolia s bohatými funkcemi poskytovaná společností Microsoft. Obě řešení nabízejí téměř podobnou škálu funkcí pro vytváření a správu projektů, liší se však podle toho, které řešení vyhovuje vašim požadavkům. Pokud například chcete on-premise řešení s větší kontrolou nad hardwarem a softwarem, můžete zvolit Project Server. Na druhou stranu Project Online slouží jako cloudová instance Project Serveru bez nutnosti vlastní infrastruktury.
Může nastat situace, kdy potřebujete získat přístup k informacím o projektech z Project Server/Online z vašich aplikací. Abychom se vypořádali s takovými případy, v tomto článku vám ukážu, jak vytvářet/číst projekty na/z Project Server nebo Project Online v rámci vašich .NET aplikací (ASP.NET atd.) nebo webových služeb pomocí C# .
C# API pro Project Server/Online
Pro vytváření nových projektů a čtení stávajících z Project Server/Online použijeme Aspose.Tasks for .NET. Jedná se o multiplatformní knihovnu tříd pro čtení a zápis souborů MS Project programově v aplikacích .NET Standard nebo .NET Core. Rozhraní API je hostováno na NuGet a je také k dispozici jako balíček MSI a zazipovaná DLL v sekci Stahování.
Práce s Project Serverem
V této části vám ukážu, jak se připojit k Project Serveru a číst nebo vytvářet projekty. Abyste se mohli připojit k Project Serveru, potřebujete znát následující podrobnosti:
- Adresa URL serveru projektu, tj. https://contoso.sharepoint.com
- Doména, tj. contoso.com
- Uživatelské jméno
- Heslo
Číst projekty z Project Server v C#
Následují kroky pro připojení k serveru Project Server a načtení seznamu projektů z něj.
- Vytvořte instanci třídy NetworkCredential a inicializujte ji pomocí přihlašovacích údajů.
- Vytvořte objekt třídy ProjectServerCredentials a inicializujte jej pomocí adresy URL projektového serveru a objektu NetworkCredential.
- Vytvořte objekt třídy ProjectServerManager a získejte seznam projektů pomocí metody ProjectServerManager.GetProjectList().
Následující ukázka kódu ukazuje, jak číst projekty z Project Server v 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);
}
Vytvořit projekt na Project Server v C#
Vytvoření projektu na serveru Project Server je jednoduché jako facka. Jednoduše se připojte k Project Serveru stejným způsobem jako v předchozím příkladu, načtěte soubor projektu (.mpp) pomocí třídy Project a zavolejte metodu ProjectServerManager.CreateNewProject().
Následující ukázka kódu ukazuje, jak vytvořit nový projekt na Project Server v 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);
Práce s Project Online
Práce s Project Online je velmi podobná práci s Project Serverem a liší se pouze ve vytváření připojení. Abyste se mohli připojit k Project Online, potřebujete znát následující podrobnosti:
- URL
- Uživatelské jméno
- Heslo
Přečtěte si projekty z Project Online v C#
Níže jsou uvedeny kroky ke čtení projektů z Project Online:
- Nastavte přihlašovací údaje pro připojení k Project Online pomocí ProjectServerCredentials.
- Vytvořte a inicializujte objekt ProjectServerManager.
- Načtěte seznam projektů pomocí metody ProjectServerManager.GetProjectList().
Následující ukázka kódu ukazuje, jak načíst seznam projektů z 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živatel může číst projekt jako tok nezpracovaných dat
var stream = manager.GetProjectRawData(info.Id);
// pracovat s nezpracovanými projektovými daty
}
Vytvořte projekt na Project Online v C#
Níže jsou uvedeny kroky k vytvoření nového projektu na Project Online:
- Nastavte přihlašovací údaje pro připojení k Project Online pomocí ProjectServerCredentials.
- Načtěte soubor projektu (.mpp) pomocí třídy Project.
- Vytvořte a inicializujte objekt ProjectServerManager.
- Vytvořte projekt pomocí metody ProjectServerManager.CreateNewProject().
Následující ukázka kódu ukazuje, jak vytvořit nový projekt na Project Online v 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);
Další informace o Aspose.Tasks for .NET
Více o řízení projektů pomocí Aspose.Tasks for .NET se můžete dozvědět z dokumentace.