Project Server e Project Online em C# ASP.NET

O Project Online e o Project Server são as soluções de gerenciamento de portfólio e projetos ricas em recursos fornecidas pela Microsoft. Ambas as soluções oferecem quase uma gama semelhante de recursos para criar e gerenciar projetos, no entanto, eles diferem com base em qual solução se adapta bem às suas necessidades. Por exemplo, se você deseja a solução local com mais controle sobre o hardware e o software, pode optar pelo Project Server. Por outro lado, o Project Online funciona como uma instância do Project Server baseada em nuvem sem exigir sua própria infraestrutura.

Pode haver o caso de precisar acessar as informações dos projetos do Project Server/Online de dentro de seus aplicativos. Para lidar com esses casos, neste artigo, mostrarei como criar/ler os projetos no/do Project Server ou Project Online em seus aplicativos .NET (ASP.NET, etc.) ou serviços da Web usando C# .

API C# para Project Server/Online

Para criar os novos projetos e ler os existentes do Project Server/Online, usaremos Aspose.Tasks for .NET. É uma biblioteca de classes multiplataforma para leitura e gravação de arquivos do MS Project programaticamente em aplicativos .NET Standard ou .NET Core. A API está hospedada em NuGet, bem como disponível como um pacote MSI e uma DLL compactada na seção Downloads.

Trabalhando com o Project Server

Nesta seção, mostrarei como se conectar ao Project Server e ler ou criar os projetos. Para se conectar ao Project Server, você precisa saber os seguintes detalhes:

Ler projetos do Project Server em C#

A seguir estão as etapas para se conectar ao Project Server e recuperar a lista de projetos dele.

O exemplo de código a seguir mostra como ler projetos do Project Server em 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);
}

Criar projeto no Project Server em C#

Criar um projeto no Project Server é tão simples quanto torta. Basta conectar-se ao Project Server da mesma forma que você fez no exemplo anterior, carregar o arquivo de projeto (.mpp) usando a classe Project e chamar o método ProjectServerManager.CreateNewProject().

O exemplo de código a seguir mostra como criar um novo projeto no Project Server em 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);

Trabalhando com o Project Online

Trabalhar com o Project online é bastante semelhante a trabalhar com o Project Server e difere apenas na criação da conexão. Para se conectar ao Project Online, você precisa saber os seguintes detalhes:

  • URL
  • Nome de usuário
  • Senha

Ler projetos do Project online em C#

A seguir estão as etapas para ler projetos do Project online:

O exemplo de código a seguir mostra como recuperar a lista de projetos do 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);

    // um usuário pode ler o projeto como fluxo de dados brutos
    var stream = manager.GetProjectRawData(info.Id);

    // trabalhar com dados brutos do projeto
}

Criar um projeto no Project online em C#

A seguir estão as etapas para criar um novo projeto no Project online:

O exemplo de código a seguir mostra como criar um novo projeto no Project Online em 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);

Saiba mais sobre o Aspose.Tasks para .NET

Você pode aprender mais sobre gerenciamento de projetos usando Aspose.Tasks para .NET na documentação.