Compartilhar via


O que o CSOM faz e não faz

O modelo de objeto no lado do cliente (CSOM) é um conjunto de APIs para o Project Server 2013 projetadas para uso online e local em aplicativos que podem ser desenvolvidos para PCs, dispositivos móveis e tablets. Este artigo inclui alguns cenários típicos para usar o CSOM e também lista as suas limitações.

O CSOM permite o desenvolvimento de aplicativos para o Project Server 2013 e a integração do Project Server com outros aplicativos. Os aplicativos podem ser desenvolvidos para serem executados em PCs, dispositivos móveis como o Windows Phone 7.5, tablets como dispositivos Windows 8 e dispositivos iOS e Android. O CSOM fornece APIs que abrangem a funcionalidade dos doze serviços PSI mais usados no Project Server. As APIs do CSOM são organizadas de maneira diferente e são mais fáceis de usar do que os serviços PSI com base em ASMX e WCF. O CSOM não usa conjuntos de dados ADO.NET e é acessível por meio do protocolo OData. Você pode desenvolver com o CSOM usando bibliotecas do .NET Framework 4, JavaScript ou consultas REST (Transferência de Estado Representacional).

Para obter uma visão geral do CSOM e acessar artigos que mostram como usar o JavaScript e o .NET Framework 4 com o CSOM, consulte Modelo de objeto no lado do cliente (CSOM) para o Project Server. Para saber mais sobre assemblies, classes e membros do CSOM, consulte a referência ao namespace Microsoft.ProjectServer.Client.

Cenários de uso para o CSOM

Os exemplos a seguir representam alguns tipos de aplicativos compatíveis com o CSOM. O CSOM pode ser usado no lugar do PSI para muitos cenários:

  • Desenvolver aplicativos que ampliam o Project Server O principal objetivo do CSOM é o desenvolvimento de aplicativos para o Project Server 2013, no qual é possível criar aplicativos para uma ampla variedade de dispositivos, incluindo PCs, dispositivos móveis e tablets. Esses aplicativos podem ser distribuídos em um catálogo particular de aplicativos ou na Office Store pública.

  • Automatizar a criação ou o gerenciamento de entidades no Project Server O CSOM pode realizar operações CRUD para entidades como projetos, tarefas, atribuições, recursos da empresa, campos personalizados, tabelas de pesquisa, quadros de horários, manipuladores de eventos e fases e estágios de fluxos de trabalho. São comuns os casos em que um aplicativo personalizado pode economizar tempo com trabalhos em massa ou repetitivos.

  • Obter dados nas tabelas publicadas do banco de dados do Project Como não há suporte para acesso direto do banco de dados às tabelas de rascunho, publicadas e de arquivo morto, você pode usar o CSOM para ler dados que não estão disponíveis nas tabelas ou exibições de relatórios. Por exemplo, é possível obter informações sobre estágios, fases e atividades de fluxos de trabalho. Para ler dados nas tabelas de relatórios, você pode usar consultas OData.

  • Validar o status e dados de quadros de horários Use o CSOM em manipuladores de eventos locais ou em receptores de eventos remotos para pré-eventos, a fim de validar dados de status de atribuição ou de quadros de horários inseridos pelos usuários antes que esses dados sejam salvos no Project Web App.

  • Criar projetos financeiros Crie projetos para captura do tempo em um quadro de horários para integração com um sistema financeiro. Crie uma hierarquia de códigos financeiros que reflitam a estrutura de decomposição de custos do sistema financeiro. Projetos financeiros não exigem agendamento ou atualizações de status.

  • Fazer integrações com sistemas contábeis Capture os custos e despesas de recursos associados a projetos para alimentar sistemas financeiros e de cobrança e para fins de comparação de orçamento. Sincronize tarefas, recursos e atribuições entre os sistemas. Capturar dados da planilha em um sistema para alimentar o outro (qual planilha é usada depende das necessidades da organização ou do projeto).

  • Automatize atualizações de membros da equipe Para projetos que não são gerenciados ativamente, atualize automaticamente os projetos no servidor com o progresso e outras alterações dos membros da equipe do projeto. Os projetos podem ser atualizados e republicados sem a revisão de um gerente de projetos dos resultados ou ajustes para o plano.

    Observação

    O CSOM permite o envio de atualizações de status, mas atualmente não é compatível com aprovações de status.

  • Avaliar dados do Project Server em receptores de eventos remotos Um receptor de eventos remoto para um pré-evento ProjectCreating pode usar os dados do Project Server provenientes do CSOM para ajudar a determinar se deve cancelar esse evento. Por exemplo, antes de criar um projeto, compare a proposta do projeto com os projetos existentes.

  • Oferecer suporte a fluxos de trabalho declarativos do Project Server O CSOM permite fluxos de trabalho do Project Server criados no SharePoint Designer 2013. O CSOM oferece suporte para definições de fluxo de trabalho que usam o Windows Workflow Foundation versão 4 (WF4). (O PSI não é compatível com fluxos de trabalho do WF4.)

  • Criar fluxos de trabalho complexos do Project Server Ao desenvolver fluxos de trabalho com o Visual Studio 2012, você pode usar o CSOM para ações complexas em estágios de fluxo de trabalho ou criar ações de fluxo de trabalho personalizadas.

O que o CSOM não faz

O CSOM não é um substituto completo para o PSI. Como o CSOM usa os serviços PSI internamente, ele tem muitas das mesmas limitações funcionais do PSI. Além das limitações do PSI, como a falta de acesso a dados em projetos locais (arquivos .mpp), o CSOM não inclui a funcionalidade administrativa com a qual o Project Web App costuma lidar. Por exemplo, a criação de grupos de segurança personalizados pode ser feita na página Configurações do Site > Permissões do Project Web App.

Para obter uma lista de ações que nem o PSI, nem o CSOM podem manipular, consulte a seção O que o PSI não faz em O que o PSI faz e não faz.

Serviços PSI que o CSOM não abrange

O CSOM não inclui a funcionalidade dos seguintes serviços PSI:

  • Serviço de administração Para gerenciar configurações e operações administrativas no Project Server e para sites de projetos relacionados, como a criação de períodos fiscais e a criação de configurações de quadros de horários, use métodos PSI na classe WebSvcAdmin.Admin. O Project Web App usa métodos Administradores em muitas das páginas que estão vinculadas à página Configurações do Servidor (https://ServerName / ProjectServerName/_layouts/15/pwa/Admin/Admin.aspx).

  • Serviço Archive Para salvar e gerenciar entidades, como projetos, recursos e campos personalizados, nas tabelas de arquivo morto, use métodos PSI na classe Archive.

  • Serviço CubeAdmin Para criar e gerenciar cubos OLAP em instalações locais, use métodos PSI na classe WebSvcCubeAdmin.CubeAdmin ou use a página Gerenciamento do Banco de Dados OLAP (https://ServerName / ProjectServerName/_layouts/15/pwa/CubeAdmin/CubeAnalysisAdmin.aspx) no Project Web App.

    Observação

    O Project Online não oferece suporte a cubos OLAP.

  • Serviço Driver Para criar e gerenciar drivers de negócios para análises de portfólio de projetos, use os métodos PSI na classe WebSvcDriver.Driver.

  • Serviço LoginForms e serviço LoginWindows A autenticação no CSOM é feita durante a inicialização do objeto ProjectContext, com a autenticação OAuth ou do Windows. Para criar aplicativos de autenticação múltipla, nos quais um aplicativo local de confiança total pode usar a autenticação do Forms e a autenticação do Windows, use métodos PSI na classe WebSvcLoginForms.LoginForms e na classe WebSvcLoginWindows.LoginWindows.

  • Serviço Notification Para criar e gerenciar alertas e lembretes, use métodos PSI na classe WebSvcNotifications.Notifications.

  • Serviço ObjectLinkProvider Para criar e gerenciar objetos e links da Web para documentos e itens de lista do SharePoint, use os métodos PSI na classe WebSvcObjectLinkProvider.ObjectLinkProvider.

  • Serviço PortfolioAnalyses Para criar e gerenciar análises de portfólio de projeto, incluindo soluções planejadoras e soluções otimizadoras, use os métodos PSI na classe WebSvcPortfolioAnalyses.PortfolioAnalyses.

  • Serviço QueueSystem O CSOM pode obter informações básicas sobre trabalhos de fila do Project Server e inclui o método ProjectContext.WaitForQueue. Para um gerenciamento mais extensivo do Sistema de Enfileiramento do Project Server, use os métodos PSI na classe WebSvcQueueSystem.QueueSystem.

  • Serviço Security Para criar e gerenciar grupos, modelos e categorias de segurança do Project Server e para verificar as permissões do usuário atual, use os métodos PSI na classe WebSvcSecurity.Security.

  • Serviço WssInterop Para saber mais sobre sites de projeto e como gerenciá-los, use métodos PSI na classe WebSvcWssInterop.WssInterop.

    Observação

    Você pode usar o CSOM no SharePoint Server 2013. Sites de projeto são sites do SharePoint.

O CSOM não permite extensões como as que o PSI pode ter. Por exemplo, se você criar uma extensão PSI para uso local, o CSOM não pode ser modificado para usar essa extensão PSI. É possível implementar cenários de extensão de outras maneiras:

  • Agregue chamadas CSOM em um componente local ou em um componente executado no Microsoft Azure.

  • Use consultas OData dos dados de relatórios ao invés de acessar diretamente as tabelas de relatórios no banco de dados do Project Server.

  • Integre chamadas CSOM com aplicativos de terceiros por meio da autenticação OAuth do Project Online ou com componentes no lado do servidor para uso local.

  • Aplicativos que usam o CSOM também podem usar bancos de dados personalizados no local ou com o SQL Azure.

Limites de solicitações do CSOM

O CSOM no Project Server 2013 acompanha a implementação CSOM do SharePoint Server 2013 e herda os limites para o tamanho máximo de uma solicitação. O SharePoint tem um limite de 2 MB para uma solicitação de operações e um limite de 50 MB para o tamanho de um objeto binário enviado. O tamanho da solicitação é limitado para proteger o servidor contra filas excessivamente longas de operações e contra atrasos de processamento de objetos binários grandes.

Por exemplo, se você usar o CSOM para criar um projeto e, em seguida, editar esse projeto para adicionar 252 tarefas com uma quantidade mínima de informações, como um nome abreviado, o GUID de tarefa e uma duração de 1d, a quantidade total de dados na solicitação DraftProject.Update será menor que 2 MB. Porém, se você tentar adicionar 253 tarefas desse tipo a um projeto vazio, o limite de 2 MB será excedido, e você obterá a seguinte exceção: Microsoft.SharePoint.Client.ServerException: a solicitação usa muitos recursos

Para capturar os dados em uma solicitação CSOM via HTTP ou HTTPS, você pode usar uma ferramenta de depuração da Web, como o Fiddler (https://www.fiddler2.com). Para verificar um exemplo de código que implementa um teste para o tamanho da solicitação e inclui uma solução que quebra uma grande solicitação em grupos menores, consulte DraftProject.Update.

Confira também