Compartir a través de


Espacio de nombres Microsoft.ProjectServer.Client

Las clases de este espacio de nombres definición el modelo de objetos de cliente (CSOM) para Microsoft Project Server 2013.

El CSOM es accesible desde ambos Project Online y desde una instalación de Project Server local, mediante el espacio de nombres Microsoft.Project.Server.Client . El CSOM de servidor del proyecto está diseñada para ser de una API relativamente fáciles de usar que consume directamente o se proporciona los datos por su nombre, en lugar de pasando conjuntos de datos o mediante el uso de parámetros de changeXml . El CSOM implementa la funcionalidad principal de Project Server Interface (PSI) para las entidades principales como Project, Task, EnterpriseResourcey Assignment. Incluye las entidades adicionales como CustomField, LookupTable, WorkflowActivities, EventHandlery QueueJob, que admiten otra funcionalidad común de Project Server.

El CSOM es una API que se crea a partir de la PSI; No se reemplace la PSI o implementar toda la funcionalidad de la PSI. El CSOM se puede tener acceso a de las siguientes maneras:

  • Como un ensamblado para usar con Microsoft .NET Framework 4.0: %ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.ProjectServer.Client.dll

    El espacio de nombres de Microsoft.ProjectServer.Client en la biblioteca de clases y la sección de referencia de servicio Web de la Project 2013 SDK el código administrado para el desarrollo general de los documentos.NET CSOM aplicaciones.

  • Como un ensamblado que se usará para el desarrollo con Silverlight: %ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\LAYOUTS\ClientBin\Microsoft.ProjectServer.Client.Silverlight.dll

  • Como un ensamblado que se usará para el desarrollo de aplicaciones para Microsoft Windows Phone 8: %ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\LAYOUTS\ClientBin\Microsoft.ProjectServer.Client.Phone.dll

  • Como un archivo que se va a usar para el desarrollo de aplicaciones web con JavaScript: %ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\LAYOUTS\PS.js o PS.debug.js

    Para obtener la referencia de JavaScript a la CSOM, vea JavaScript API reference for Project Server 2013.

  • Una aplicación web también puede obtener acceso el CSOM a través de REST. Por ejemplo, puede usar la siguiente consulta para obtener los datos para todos los proyectos en una instancia de Project Web App :

    https://ServerName/ProjectServerName/_api/ProjectServer/Projects
    

    Para obtener más información, vea Client-side object model (CSOM) for Project Server y programación utilizando el servicio de REST de SharePoint 2013.

La descarga SDK de Project 2013 incluye también los ensamblados y archivos de JavaScript para el CSOM de servidor de Project. Si actualiza una versión de Project Server con un service pack, debe copiar los ensamblados actualizados y archivos de JavaScript en el equipo de desarrollo.

Las entidades principales de Project Server son generalmente representadas en el CSOM por seis clases, por ejemplo:

  • La clase base, como Assignment, contiene las propiedades comunes de la entidad de borrador y de la entidad publicada.

  • La clase de información de la creación, como AssignmentCreationInformation, contiene las propiedades que se usan para crear una entidad.

  • La clase de proyecto, tales como DraftAssignment, incluye las propiedades de lectura y escritura que representan la entidad para su edición.

  • La clase publicada, como PublishedAssignment, incluye las propiedades de solo lectura que representan la entidad publicada.

  • La clase de colección de borrador, como DraftAssignmentCollection, incluye el método Add para agregar una entidad de dibujo a la colección, el método GetById para obtener una entidad específica para su edición y el método Remove para eliminar una entidad.

  • La clase de la colección publicado, como PublishedAssignmentCollection, generalmente incluye el método GetById para obtener una entidad específica para lectura o para la desprotección de editar.

La clase ProjectContext y la clase ProjectServer cada mantienen el contexto de cliente para el desarrollo de aplicaciones y contienen las colecciones de entidad que son accesibles globalmente en una instancia de Project Web App , tales como Projects, EnterpriseResources, EnterpriseProjectTypes, CustomFields, LookupTablesy Events. Debido a que la clase ProjectServer está prevista para uso interno de los objetos de cliente, aplicaciones deben utilizar la clase de ProjectContext , que se inicialice con la ruta de acceso de Project Web App .

Para obtener un ejemplo sencillo de programación con el CSOM, vea el ejemplo de la sección posterior en esta página. Para obtener más información acerca del desarrollo con la CSOM, vea Client-side object model (CSOM) for Project Server. La referencia de código administrado en el Project 2013 SDK proporciona descripciones básicas y comentarios de las propiedades de entidades, que también se describen en las clases para los espacios de nombres de la PSI. Para obtener información detallada acerca de las propiedades de las entidades, vea la referencia de los campos disponibles.

El CSOM para Project Server 2013 se basa en la CSOM para SharePoint Foundation 2013. Para obtener más información, vea Choose derecho API establecido en SharePoint 2013.

Clases

  Clase Descripción
Clase pública Assignment
Clase pública AssignmentCreationInformation
Clase pública BaseCalendarException
Clase pública Calendar
Clase pública CalendarCollection
Clase pública CalendarCreationInformation
Clase pública CalendarException
Clase pública CalendarExceptionCollection
Clase pública CalendarExceptionCreationInformation
Clase pública CustomField
Clase pública CustomFieldCollection
Clase pública CustomFieldCreationInformation
Clase pública DraftAssignment
Clase pública DraftAssignmentCollection
Clase pública DraftProject
Clase pública DraftProjectResource
Clase pública DraftProjectResourceCollection
Clase pública DraftTask
Clase pública DraftTaskCollection
Clase pública DraftTaskLink
Clase pública DraftTaskLinkCollection
Clase pública EnterpriseProjectType
Clase pública EnterpriseProjectTypeCollection
Clase pública EnterpriseProjectTypeCreationInformation
Clase pública EnterpriseResource
Clase pública EnterpriseResourceCollection
Clase pública EnterpriseResourceCreationInformation
Clase pública EntityType
Clase pública EntityTypes
Clase pública Event
Clase pública EventCollection
Clase pública EventHandler
Clase pública EventHandlerCollection
Clase pública EventHandlerCreationInformation
Clase pública LookupCost
Clase pública LookupDate
Clase pública LookupDuration
Clase pública LookupEntry
Clase pública LookupEntryCollection
Clase pública LookupEntryCreationInformation
Clase pública LookupEntryValue
Clase pública LookupMask
Clase pública LookupNumber
Clase pública LookupTable
Clase pública LookupTableCollection
Clase pública LookupTableCreationInformation
Clase pública LookupTables
Clase pública LookupText
Clase pública Phase
Clase pública PhaseCollection
Clase pública PhaseCreationInformation
Clase pública PlanAssignment
Clase pública PlanAssignmentCollection
Clase pública PlanAssignmentCreationInformation
Clase pública PlanAssignmentInterval
Clase pública PlanAssignmentIntervalCollection
Clase pública PlanAssignmentIntervalCreationInformation
Clase pública Project
Clase pública ProjectCollection
Clase pública ProjectContext
Clase pública ProjectCreationInformation
Clase pública ProjectDetailPage
Clase pública ProjectDetailPageCollection
Clase pública ProjectDetailPageCreationInformation
Clase pública ProjectResource
Clase pública ProjectResourceCreationInformation
Clase pública ProjectServer
Clase pública ProjectServerData
Clase pública PublishedAssignment
Clase pública PublishedAssignmentCollection
Clase pública PublishedProject
Clase pública PublishedProjectResource
Clase pública PublishedProjectResourceCollection
Clase pública PublishedTask
Clase pública PublishedTaskCollection
Clase pública PublishedTaskLink
Clase pública PublishedTaskLinkCollection
Clase pública QueueJob
Clase pública QueueJobCollection
Clase pública ResourceCalendarException
Clase pública ResourcePlan
Clase pública ScriptTypeFactory
Clase pública ServiceStatus
Clase pública Stage
Clase pública StageCollection
Clase pública StageCreationInformation
Clase pública StageCustomField
Clase pública StageCustomFieldCollection
Clase pública StageCustomFieldCreationInformation
Clase pública StageDetailPage
Clase pública StageDetailPageCollection
Clase pública StageDetailPageCreationInformation
Clase pública StatusAssignment
Clase pública StatusAssignmentCollection
Clase pública StatusAssignmentCreationInformation
Clase pública StatusTask
Clase pública StatusTaskCreationInformation
Clase pública Task
Clase pública TaskCreationInformation
Clase pública TaskLink
Clase pública TaskLinkCreationInformation
Clase pública TimePhase
Clase pública TimeSheet
Clase pública TimeSheetLine
Clase pública TimeSheetLineCollection
Clase pública TimeSheetLineCreationInformation
Clase pública TimeSheetPeriod
Clase pública TimeSheetPeriodCollection
Clase pública TimeSheetWork
Clase pública TimeSheetWorkCollection
Clase pública TimeSheetWorkCreationInformation
Clase pública WorkflowActivities
Clase pública WorkflowDesigner
Clase pública WorkflowDesignerField
Clase pública WorkflowDesignerFieldCollection

Enumeraciones

  Enumeración Descripción
Enumeración pública AccrueAt El modo de acumulación de costo especifica cómo y cuándo los costos de recursos se cargará en el costo de una tarea.
Enumeración pública BookingType Especifica cómo están reservados para las asignaciones de recursos.
Enumeración pública CalendarRecurrenceDays Representa los días de la semana para las excepciones de calendario periódico.
Enumeración pública CalendarRecurrenceType Especifica los tipos de periodicidad para una excepción de calendario.
Enumeración pública CalendarRecurrenceWeek Especifica una semana de un mes en el que se utiliza para configurar una programación.
Enumeración pública CommittedDecisionResult Especifica si un elemento está incluido en una función de optimizer o planificador para el análisis de la cartera de proyectos.
Enumeración pública ConstraintType Especifica el tipo de delimitación para una tarea.
Enumeración pública CurrencySymbolPosition Especifica la posición del símbolo de moneda.
Enumeración pública CustomFieldRollupType Especifica el tipo de resumen acumulados para un campo personalizado.
Enumeración pública CustomFieldType Especifica el tipo de un campo personalizado de empresa.
Enumeración pública DependencyType Especifica el tipo de dependencia para establecer entre dos tareas.
Enumeración pública EnterpriseResourceType Representa los distintos tipos de recursos de empresa.
Enumeración pública FixedCostAccrual Especifica cómo y cuándo los costos fijos se cargará en el costo de una tarea.
Enumeración pública JobState El estado del trabajo de cola de Project Server especifica el estado de un trabajo de la cola.
Enumeración pública LookupTableConstants Especifica los valores máximos y los valores mínimos de las entidades de tabla de búsqueda.
Enumeración pública LookupTableMaskSequence Especifica la secuencia de la máscara, que es el tipo de datos de una tabla de búsqueda.
Enumeración pública LookupTableSortOrder Especifica el orden de una tabla de búsqueda.
Enumeración pública OvertimeRateFormat Especifica la unidad de tiempo de la tasa de horas extra del recurso; es decir, la tasa por unidad de tiempo, como dólares por hora.
Enumeración pública ProjectDetailPageType Especifica el tipo de página de detalles del proyecto (PDP).
Enumeración pública ProjectType Especifica el tipo de proyecto.
Enumeración pública QueueMsgType Especifica el tipo de mensaje de la cola, para enviar un trabajo con el sistema de cola de Project Server.
Enumeración pública ReadyToLeaveProjectStageValue Especifica los requisitos de la fase de proyecto en un flujo de trabajo de Project Server para ayudar a determinar si el flujo de trabajo está listo para abandonar el escenario.
Enumeración pública ResourceType Especifica los tipos de recursos.
Enumeración pública StandardRateFormat Especifica la unidad de tiempo de la tasa de recurso; es decir, la tasa por unidad de tiempo, como dólares por hora.
Enumeración pública StrategicImpactBehavior Especifica el impacto estratégico de cómo se comportan los valores en una etapa de flujo de trabajo de Project Server.
Enumeración pública TaskType Especifica si el tipo de tarea en un proyecto es fijo unidades, de trabajo fijo o duración fija.
Enumeración pública TimeScale Especifica la escala de los datos de fase temporal.
Enumeración pública TimeSheetEntryMode Contiene los modos de entrada de parte de horas.
Enumeración pública TimeSheetLineClass Representa las clasificaciones que definen los distintos usos de una línea del parte de horas.
Enumeración pública TimeSheetLineStatus Representa la configuración de estado que se pueden aplicar a una línea de parte de horas.
Enumeración pública TimeSheetStatus Representa la configuración de estado que se pueden aplicar a un parte de horas.
Enumeración pública TimeSheetValidationType Especifica el conjunto de tipos de validación para las líneas del parte de horas.
Enumeración pública TrackingMode Especifica los modos para hacer un seguimiento del progreso de la tarea.
Enumeración pública UpdateProjectStageStatusFieldValue Especifica el estado de la etapa de proyecto en un flujo de trabajo de Project Server.
Enumeración pública UtilizationType Especifica el tipo de uso de recursos para el planeamiento de recursos actual.
Enumeración pública WorkFormat Contiene un valor que representa un formato de trabajo.

Ejemplos

Los siguientes son los pasos para crear una aplicación de consola sencilla denominada ReadProjectList que usa las clases del espacio de nombres de Microsoft.ProjectServer.Client para leer la colección de los proyectos publicados.

  1. Si está desarrollando en un equipo remoto, copie los siguientes ensamblados desde la descarga SDK de Project 2013 o desde %ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI en el equipo de Project Server en una carpeta conveniente en el equipo de desarrollo:

    • Microsoft.ProjectServer.Client.dll

    • Microsoft.SharePoint.Client.dll

    • Microsoft.SharePoint.Client.Runtime.dll

  2. En Visual Studio 2012, cree una aplicación de consola. En este ejemplo, asigne el nombre de la aplicación ReadProjectList. En el cuadro de diálogo Nuevo proyecto , establezca el marco de destino a .NET Framework 4.5. También puede usar Visual Studio 2010 con .NET Framework 4 (hacer uso noPerfil del cliente de .NET Framework 4).

  3. Establecer referencias a los ensamblados que se especifican en el paso 1.

  4. Reemplace el código en el archivo Program.cs con el siguiente código.

    Nota

    Debe establecer el contexto CSOM mediante el objeto ProjectContext , no mediante el objeto ProjectServer .

  5. Presione F5 para ejecutar la aplicación.

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);
        }
    }
}

Vea también

Referencia

Otros recursos

Client-side object model (CSOM) for Project Server

JavaScript API reference