Project Online et Project Server sont les solutions de gestion de projets et de portefeuilles riches en fonctionnalités fournies par Microsoft. Les deux solutions offrent une gamme de fonctionnalités presque similaire pour la création et la gestion de projets, cependant, elles diffèrent en fonction de la solution qui correspond le mieux à vos besoins. Par exemple, si vous souhaitez une solution sur site avec plus de contrôle sur le matériel et les logiciels, vous pouvez opter pour Project Server. D’autre part, Project Online sert d’instance cloud de Project Server sans nécessiter votre propre infrastructure.
Il peut arriver que vous ayez besoin d’accéder aux informations des projets à partir de Project Server/Online à partir de vos applications. Afin de faire face à de tels cas, dans cet article, je vais vous montrer comment créer/lire les projets sur/depuis Project Server ou Project Online au sein de vos applications .NET (ASP.NET, etc.) ou services Web à l’aide de C# .
API C# pour Project Server/en ligne
Pour créer les nouveaux projets et lire les projets existants à partir de Project Server/Online, nous utiliserons Aspose.Tasks for .NET. Il s’agit d’une bibliothèque de classes multiplateforme pour la lecture et l’écriture de fichiers MS Project par programme dans les applications .NET Standard ou .NET Core. L’API est hébergée sur NuGet et disponible sous forme de package MSI et de DLL compressée dans la section Téléchargements.
Travailler avec Project Server
Dans cette section, je vais vous montrer comment vous connecter à Project Server et lire ou créer les projets. Pour vous connecter à Project Server, vous devez connaître les détails suivants :
- URL de Project Server, c’est-à-dire https://contoso.sharepoint.com
- Domaine c’est-à-dire contoso.com
- Nom d’utilisateur
- Mot de passe
Lire des projets à partir de Project Server en C#
Voici les étapes pour se connecter à Project Server et récupérer la liste des projets à partir de celui-ci.
- Instanciez la classe NetworkCredential et initialisez-la avec les informations d’identification.
- Créez un objet de la classe ProjectServerCredentials et initialisez-le avec l’URL du serveur de projet et l’objet NetworkCredential.
- Créez un objet de la classe ProjectServerManager et obtenez une liste des projets à l’aide de la méthode ProjectServerManager.GetProjectList().
L’exemple de code suivant montre comment lire des projets à partir de Project Server en 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);
}
Créer un projet sur Project Server en C#
Créer un projet sur Project Server est aussi simple qu’un gâteau. Connectez-vous simplement à Project Server de la même manière que dans l’exemple précédent, chargez le fichier projet (.mpp) à l’aide de la classe Project et appelez la méthode ProjectServerManager.CreateNewProject().
L’exemple de code suivant montre comment créer un nouveau projet sur Project Server en 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);
Travailler avec Project Online
Travailler avec Project Online est assez similaire à travailler avec Project Server et ne diffère que par la création de la connexion. Pour vous connecter à Project Online, vous devez connaître les détails suivants :
- URL
- Nom d’utilisateur
- Mot de passe
Lire des projets à partir de Project Online en C#
Voici les étapes pour lire des projets à partir de Project Online :
- Définissez les informations d’identification pour vous connecter à Project Online à l’aide de ProjectServerCredentials.
- Créez et initialisez l’objet ProjectServerManager.
- Récupérez la liste des projets à l’aide de la méthode ProjectServerManager.GetProjectList().
L’exemple de code suivant montre comment récupérer la liste des projets à partir de 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 utilisateur peut lire le projet sous forme de flux de données brutes
var stream = manager.GetProjectRawData(info.Id);
// travailler avec des données de projet brutes
}
Créer un projet sur Project Online en C#
Voici les étapes pour créer un nouveau projet sur Project Online :
- Définissez les informations d’identification pour vous connecter à Project Online à l’aide de ProjectServerCredentials.
- Chargez le fichier projet (.mpp) à l’aide de la classe Project.
- Créez et initialisez l’objet ProjectServerManager.
- Créez le projet à l’aide de la méthode ProjectServerManager.CreateNewProject().
L’exemple de code suivant montre comment créer un nouveau projet sur Project Online en 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);
En savoir plus sur Aspose.Tasks for .NET
Vous pouvez en savoir plus sur la gestion de projet à l’aide d’Aspose.Tasks for .NET à partir de la documentation.