Project Server a Project Online v C# ASP.NET

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:

Čí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.

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:

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:

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.