Microsoft.ProjectServer.Client namespace
Classes neste namespace definem o modelo de objeto do lado do cliente (CSOM) para Microsoft Project Server 2013.
O CSOM está acessível de ambos os Project Online em uma instalação do Project Server no local, por meio do namespace Microsoft.Project.Server.Client . O Project Server CSOM foi projetado para ser uma API relativamente fácil de usar que consome diretamente ou fornece dados pelo nome, em vez de ao passar datasets ou usando os parâmetros de changeXml . O CSOM implementa a funcionalidade principal do Project Server Interface (PSI) para as entidades principais, como Project, Task, EnterpriseResourcee Assignment. Ele inclui entidades adicionais, como CustomField, LookupTable, WorkflowActivities, EventHandlere QueueJob, que oferece suporte a outras funcionalidades comuns do Project Server.
O CSOM é uma API que se baseia no PSI; Não substitua o PSI ou implementar todas as funcionalidades do PSI. O CSOM pode ser acessado das seguintes maneiras:
Como um assembly para usar com o Microsoft.NET Framework 4.0: %ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.ProjectServer.Client.dll
O namespace Microsoft.ProjectServer.Client na seção de referência de serviço Web de Project 2013 SDK e biblioteca de classe documenta o código gerenciado para o desenvolvimento geral de.Aplicativos CSOM NET.
Como um assembly a ser usado para o desenvolvimento com Silverlight: %ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\LAYOUTS\ClientBin\Microsoft.ProjectServer.Client.Silverlight.dll
Como um assembly a ser usado para o desenvolvimento de aplicativos para o Microsoft Windows Phone 8: %ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\LAYOUTS\ClientBin\Microsoft.ProjectServer.Client.Phone.dll
Como um arquivo a ser usado para o desenvolvimento de aplicativos web com o JavaScript: %ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\LAYOUTS\PS.js ou PS.debug.js
Para a referência de JavaScript para o CSOM, consulte JavaScript API reference for Project Server 2013.
Um aplicativo da web também pode acessar o CSOM restante. Por exemplo, você pode usar a seguinte consulta para obter dados para todos os projetos em uma instância de Project Web App :
https://ServerName/ProjectServerName/_api/ProjectServer/Projects
Para obter mais informações, consulte Client-side object model (CSOM) for Project Server e programação usando o serviço do SharePoint 2013 REST.
O download do SDK Project 2013 também inclui os módulos (assemblies) e arquivos de JavaScript para o CSOM de servidor de projeto. Se você atualizar o Project Server com o service pack, você deve copiar os arquivos de JavaScript e conjuntos atualizados para seu computador de desenvolvimento.
As entidades principais do Project Server são geralmente representadas no CSOM por seis classes, por exemplo:
A classe base, como Assignment, contém as propriedades comuns para a entidade de rascunho e a entidade publicada.
A classe de informações de criação, como AssignmentCreationInformation, contém as propriedades que são usadas para criar uma entidade.
A classe de rascunho, como DraftAssignment, que inclui as propriedades de leitura/gravação que representam a entidade para edição.
Classe publicado, como PublishedAssignment, que inclui as propriedades somente leitura que representam a entidade publicada.
A classe de coleção de rascunho, como DraftAssignmentCollection, inclui o método Add para adicionar uma entidade de rascunho para a coleção, o método GetById para obter uma entidade específica para a edição e o método Remove para excluir uma entidade.
A classe de coleção publicados, como PublishedAssignmentCollection, geralmente inclui o método GetById para obter uma entidade específica para leitura ou para fazer check-out para editar.
A classe ProjectContext e a classe de ProjectServer cada manter o contexto de cliente para o desenvolvimento de aplicativos e contêm coleções de entidades globalmente podem ser acessados em uma instância de Project Web App , como Projects, EnterpriseResources, EnterpriseProjectTypes, CustomFields, LookupTablese Events. Porque a classe ProjectServer é fornecida para uso interno por objetos do lado do cliente, os aplicativos devem usar a classe ProjectContext , que é inicializada com o caminho Project Web App .
Para um exemplo simples de programação com o CSOM, consulte o exemplo mais adiante na seção desta página. Para obter mais informações sobre o desenvolvimento com o CSOM, consulte Client-side object model (CSOM) for Project Server. A referência de código gerenciado no Project 2013 SDK fornece descrições básicas e comentários para as propriedades de entidades, que também são descritas em classes de espaços para nome em PSI. Para obter informações detalhadas sobre as propriedades de entidades, consulte referência de campos disponíveis.
CSOM para Project Server 2013 baseia-se em CSOM para SharePoint Foundation 2013. Para obter mais informações, consulte Escolher à direita do conjunto do SharePoint 2013 API.
Classes
Enumerações
Enumeração | Descrição | |
---|---|---|
AccrueAt | O modo de acumulação de custo Especifica como e quando os custos dos recursos devem ser cobrados no custo de uma tarefa. | |
BookingType | Especifica como os recursos são reservados para atribuições. | |
CalendarRecurrenceDays | Representa os dias da semana para exceções de calendário recorrente. | |
CalendarRecurrenceType | Especifica os tipos de recorrência para uma exceção de calendário. | |
CalendarRecurrenceWeek | Especifica uma semana de um mês que é usada para configurar um agendamento. | |
CommittedDecisionResult | Especifica se um item está incluído em uma função do optimizer ou uma função do Planejador de projeto para análise de portfólio. | |
ConstraintType | Especifica o tipo de restrição para uma tarefa. | |
CurrencySymbolPosition | Especifica a posição do símbolo da moeda. | |
CustomFieldRollupType | Especifica o tipo de acúmulo de resumo para um campo personalizado. | |
CustomFieldType | Especifica o tipo de um campo personalizado da empresa. | |
DependencyType | Especifica o tipo de dependência para estabelecer entre duas tarefas. | |
EnterpriseResourceType | Representa os tipos diferentes de recursos da empresa. | |
FixedCostAccrual | Especifica como e quando os custos fixos devem ser cobrados no custo de uma tarefa. | |
JobState | O estado do trabalho de fila do Project Server Especifica o status de uma fila de trabalho. | |
LookupTableConstants | Especifica os valores máximos e os valores mínimos para entidades de tabela de pesquisa. | |
LookupTableMaskSequence | Especifica a seqüência de máscara, que é o tipo de dados para uma tabela de pesquisa. | |
LookupTableSortOrder | Especifica a ordem de classificação para uma tabela de pesquisa. | |
OvertimeRateFormat | Especifica a unidade de tempo da taxa de horas extras do recurso; ou seja, a taxa por unidade de tempo, como dólares por hora. | |
ProjectDetailPageType | Especifica o tipo de página de detalhes do projeto (PDP). | |
ProjectType | Especifica o tipo de projeto. | |
QueueMsgType | Especifica o tipo de mensagem da fila, para enviar um trabalho para o sistema de fila do Project Server. | |
ReadyToLeaveProjectStageValue | Especifica os requisitos de estágio de projeto em um fluxo de trabalho do Project Server para ajudar a determinar se o fluxo de trabalho está pronto para sair do Palco. | |
ResourceType | Especifica os tipos de recursos. | |
StandardRateFormat | Especifica a unidade de tempo da taxa de recurso; ou seja, a taxa por unidade de tempo, como dólares por hora. | |
StrategicImpactBehavior | Especifica o impacto estratégico como valores se comportam em um estágio de fluxo de trabalho do Project Server. | |
TaskType | Especifica se o tipo de tarefa em um projeto é fixado unidades, trabalho fixo e duração fixa. | |
TimeScale | Especifica a escala dos dados divididos em fases. | |
TimeSheetEntryMode | Contém os modos de entrada de quadro de horários. | |
TimeSheetLineClass | Representa as classificações que definem os diferentes usos de uma linha de quadro de horários. | |
TimeSheetLineStatus | Representa as configurações de status que podem ser aplicadas a uma linha de quadro de horários. | |
TimeSheetStatus | Representa as configurações de status que podem ser aplicadas a um quadro de horários. | |
TimeSheetValidationType | Especifica o conjunto de tipos de validação para linhas de quadro de horários. | |
TrackingMode | Especifica os modos para controlar o progresso da tarefa. | |
UpdateProjectStageStatusFieldValue | Especifica o status do estágio do projeto em um fluxo de trabalho do Project Server. | |
UtilizationType | Especifica o tipo de uso de recursos para o planejamento de recursos atual. | |
WorkFormat | Contém um valor que representa um formato de trabalho. |
Exemplos
A seguir estão as etapas para criar um aplicativo de console simples chamado ReadProjectList que usa classes do namespace Microsoft.ProjectServer.Client para ler a coleção de projetos publicados.
Se você estiver desenvolvendo em um computador remoto, copie os seguintes assemblies de baixar o SDK Project 2013 ou de %ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI no computador do Project Server para uma pasta adequada no computador de desenvolvimento:
Microsoft.ProjectServer.Client.dll
Microsoft.SharePoint.Client.dll
Microsoft.SharePoint.Client.Runtime.dll
No Visual Studio 2012, crie um aplicativo de console. Para este exemplo, nomeie o aplicativo ReadProjectList. Na caixa de diálogo Novo projeto , defina a estrutura de destino para o .NET Framework 4.5. Você também pode usar o Visual Studio 2010 com o .NET Framework 4 (fazer uso .NET Framework 4 Client Profile ).
Definir referências aos assemblies que são especificados na etapa 1.
Substitua o código no arquivo Program.cs pelo código a seguir.
Observação
Você deve definir o contexto CSOM, usando o objeto ProjectContext , não usando o objeto ProjectServer .
Pressione F5 para executar o aplicativo.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.ProjectServer.Client;
namespace ReadProjectList
{
class Program
{
private const string pwaPath = "https://ServerName/PwaName/"; // Change the path for Project Web App.
// Set the context for the Project Server CSOM.
private static ProjectContext projContext;
static void Main(string[] args)
{
projContext = new ProjectContext(pwaPath);
// Get the list of published projects in Project Web App.
projContext.Load(projContext.Projects);
projContext.ExecuteQuery();
Console.WriteLine("\nProject ID : Project name : Created date");
foreach (PublishedProject pubProj in projContext.Projects)
{
Console.WriteLine("\n\t{0}\n\t{1} : {2}", pubProj.Id.ToString(), pubProj.Name,
pubProj.CreatedDate.ToString());
}
Console.Write("\nPress any key to exit: ");
Console.ReadKey(false);
}
}
}