Project Server e Project online in C# ASP.NET

Project Online e Project Server sono le soluzioni di gestione di progetti e portfolio ricche di funzionalità fornite da Microsoft. Entrambe le soluzioni offrono una gamma quasi simile di funzionalità per la creazione e la gestione dei progetti, tuttavia differiscono in base alla soluzione che si adatta meglio alle tue esigenze. Ad esempio, se si desidera una soluzione locale con un maggiore controllo sull’hardware e sul software, è possibile scegliere Project Server. D’altra parte, Project Online funge da istanza basata su cloud di Project Server senza richiedere la propria infrastruttura.

Potrebbe verificarsi il caso in cui sia necessario accedere alle informazioni dei progetti da Project Server/Online dall’interno delle proprie applicazioni. Per affrontare questi casi, in questo articolo ti mostrerò come creare/leggere i progetti su/da Project Server o Project Online all’interno delle tue applicazioni .NET (ASP.NET, ecc.) o dei servizi web utilizzando C# .

API C# per Project Server/Online

Per creare i nuovi progetti e leggere quelli esistenti da Project Server/Online, utilizzeremo Aspose.Tasks for .NET. È una libreria di classi multipiattaforma per leggere e scrivere file MS Project a livello di codice in applicazioni .NET Standard o .NET Core. L’API è ospitata su NuGet ed è disponibile come pacchetto MSI e DLL compressa nella sezione Download.

Lavorare con Project Server

In questa sezione ti mostrerò come connetterti al Project Server e leggere o creare i progetti. Per connettersi a Project Server, è necessario conoscere i seguenti dettagli:

Leggi i progetti da Project Server in C#

Di seguito sono riportati i passaggi per connettersi a Project Server e recuperare l’elenco dei progetti da esso.

Nell’esempio di codice seguente viene illustrato come leggere i progetti da Project Server in 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);
}

Crea progetto su Project Server in C#

Creare un progetto su Project Server è semplice come una torta. Connettiti semplicemente a Project Server come hai fatto nell’esempio precedente, carica il file di progetto (.mpp) usando la classe Project e chiama il metodo ProjectServerManager.CreateNewProject().

Nell’esempio di codice seguente viene illustrato come creare un nuovo progetto in Project Server in 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);

Lavorare con il progetto in linea

L’utilizzo di Project Online è abbastanza simile all’utilizzo di Project Server e si differenzia solo per la creazione della connessione. Per connettersi a Project Online, è necessario conoscere i seguenti dettagli:

  • URL
  • Nome utente
  • Parola d’ordine

Leggi i progetti da Project online in C#

Di seguito sono riportati i passaggi per leggere i progetti da Project Online:

Nell’esempio di codice seguente viene illustrato come recuperare l’elenco di progetti da 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);

    // un utente può leggere il progetto come flusso di dati grezzi
    var stream = manager.GetProjectRawData(info.Id);

    // lavorare con dati di progetto grezzi
}

Crea un progetto su Project online in C#

Di seguito sono riportati i passaggi per creare un nuovo progetto su Project Online:

Nell’esempio di codice seguente viene illustrato come creare un nuovo progetto in Project Online in 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);

Ulteriori informazioni su Aspose.Tasks per .NET

Puoi saperne di più sulla gestione dei progetti usando Aspose.Tasks per .NET dalla documentazione.