
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:
- URL do Project Server, ou seja, https://contoso.sharepoint.com
- Domínio, ou seja, contoso.com
- Nome de usuário
- Senha
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.
- Instancie a classe NetworkCredential e inicialize-a com credenciais.
- Crie um objeto da classe ProjectServerCredentials e inicialize-o com a URL do servidor de projeto e o objeto NetworkCredential.
- Crie um objeto da classe ProjectServerManager e obtenha uma lista dos projetos usando o método ProjectServerManager.GetProjectList().
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:
- Defina as credenciais para se conectar ao Project Online usando ProjectServerCredentials.
- Crie e inicialize o objeto ProjectServerManager.
- Recupere a lista de projetos usando o método ProjectServerManager.GetProjectList().
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:
- Defina as credenciais para se conectar ao Project Online usando ProjectServerCredentials.
- Carregue o arquivo de projeto (.mpp) usando a classe Project.
- Crie e inicialize o objeto ProjectServerManager.
- Crie o projeto usando o método ProjectServerManager.CreateNewProject().
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.