Project 2013 のクライアント側オブジェクト モデル (CSOM)

Project Server 2013 のクライアント側オブジェクト モデル (CSOM) は、一般的なサーバー機能を実装しています。 Project Server CSOM には、Microsoft .NET CSOM、Microsoft Silverlight CSOM、Windows Phone 8 CSOM、および JavaScript オブジェクト モデル (JSOM) が含まれます。 さらに、この CSOM には REST インターフェイスを有効にする OData サービスも含まれています。 この REST インターフェイスは、主に iOS や Android などの Windows 以外のプラットフォームでアプリを開発するためのものです。

注:

Project Online 用のソリューションには CSOM を使用する必要があります。 ただし、オンプレミスのアプリには CSOM と Project Server Interface (PSI) のどちらかを使用できます。 使用する予定の機能が CSOM に含まれている場合、新しいアプリには CSOM を使用することをお勧めします。

CSOM の拡張機能 ProjectContext オブジェクトは、サーバー コンテンツと機能へのエントリ ポイントを提供します。 .NET CSOM、Silverlight CSOM、および Windows Phone CSOM は、Microsoft.ProjectServer.Client.ProjectContext オブジェクトを使用し、JSOM は PS.ProjectContext オブジェクトを使用します。 ProjectContext のプロパティは、現在の Project Web App サイト コレクションに含まれる主要な Project Server オブジェクトへの直接アクセスを提供します。 CSOM アセンブリと JavaScript ファイルの場所に関する詳細については、Microsoft.ProjectServer.Client を参照してください。

アプリとセキュリティ モデル アプリは、Project Server 2013 および Project Online の CRUD (作成、読み取り、更新、削除) 操作に CSOM を使用する必要があります。 Project アプリは、SharePoint 2013 のアプリ専用の認証モデルを使用しません。 Project Server アプリには、どのユーザーの代わりにコマンドを実行するかを指定する特定のアクセス許可要求のスコープが必要です。

REST クエリ CSOM OData サービスの REST クエリはメタデータを利用することなく作成できます。 一部のサード パーティ製のツールでは、CSOM 対応の .NET アセンブリを使用して、その他のデバイス用アプリを開発できます。 たとえば、「iOS または Android 対応のクロスプラットフォーム .NET 開発ツール」についてインターネットを検索してください。

注:

ProjectData レポート サービスの $metadata オプションは有効ですが (https://ServerName/pwaName/_api/ProjectData/$metadata)、CSOM の ProjectServer サービスの $metadata オプションは、リリース済みバージョンの Project Server 2013 では削除されています。 REST エンドポイントとして利用可能な CSOM のオブジェクトとメンバーを調べるには、「Project Server 2013 の JavaScript ライブラリおよび REST リファレンス」を参照してください。

REST インターフェイスを介して CSOM で使用できるエンティティを表示するには、クエリを https://ServerName/pwaName/_api/ProjectServer 使用できます。 REST クエリの場合、ProjectServer エンティティは、Microsoft.ProjectServer.Client.dll マネージ アセンブリの ProjectContext オブジェクトと JSOM の PS.ProjectContext オブジェクトのプロパティを忠実に再現しています。 たとえば、ブラウザーを使用して、次のクエリを使用して、Project Web App内のプロジェクト、指定したプロジェクト内の割り当て、指定したリソースの指定した割り当てのタスク名に関する情報を CSOM から取得できます (各クエリでは同じ https://ServerName/pwaName/_api URL プレフィックスを使用します)。 Project.IdEnterpriseResource.Id、および Assignment.Id の GUID はサンプルの値です。

/ProjectServer/Projects
/ProjectServer/Projects('263fc8d7-427c-e111-92fc-00155d3ba208')/Assignments
/ProjectServer/EnterpriseResources('28eeb2b5-fe74-4efc-aa35-6a64514d1526')/Assignments('a2eafeb5-437c-e111-92fc-00155d3ba208')/Task?$select=Name

ProjectData サービスの OData インターフェイス (レポート用の読み取り専用インターフェイス) とは異なり、ProjectServer サービスで REST クエリを使用すると CRUD 操作を実行できます。 Project Server CSOM に対する REST クエリは、主に Windows デスクトップ以外のプラットフォーム (Windows RT、iOS、Android など) に向けて設計されています。 Windows デスクトップおよびサーバー プラットフォーム (Windows 7、Windows 8、および Windows Server 2008 R2) の場合は、CSOM マネージ アセンブリを使用できます。 Web アプリの場合は、JavaScript 用の PS.js を使用できます。 REST クエリを使用した CRUD 操作の実行に関する詳細については、SharePoint 2013 SDK のトピック「SharePoint REST 要求で OData クエリ操作を使用する」を参照してください。 ProjectData サービスの使用に関する詳細については、「Project レポート データの OData フィードを照会する」を参照してください。

表 1 に、Project Server のオブジェクトを表す ProjectContext のプロパティを示します。 これらのオブジェクトを使用することで、Project Server 2013 のその他のエンティティ (割り当てやタスクなど) を取得できます。

表 1. CSOM と JSOM の Project Server オブジェクトにアクセスするための ProjectContext プロパティ

CSOM (.NET、Silverlight、および Windows Phone) JSOM
CustomFields
customFields
EnterpriseProjectTypes
enterpriseProjectTypes
EnterpriseResources
enterpriseResources
EntityTypes
entityTypes
EventHandlers
eventHandlers
Events
events
LookupTables
lookupTables
Phases
phases
Projects
projects
Stages
stages
WorkflowActivities
workflowActivities
WorkflowDesigner
workflowDesigner

このセクションの内容

Project Server CSOM と .NET の使用を開始する」には、Project Server CSOM と .NET の概要情報、単純な .NET CSOM 拡張機能を Visual Studio 2012 で作成する手順、およびサポート コードのサンプルが含まれています。

Project Server 2013 JavaScript オブジェクト モデルの概要」には、Project Server JSOM の概要情報、単純な JSOM 拡張機能を Visual Studio 2012 で作成する手順、およびサポートされているコード サンプルが含まれています。

CSOM の使用方法を示す次の記事も確認してください。

注:

CSOM を使用した .NET Framework 4 開発には Visual Studio 2010 を使用することもできます。

リファレンス

Microsoft.ProjectServer.Client

関連項目

Project Server 2013 アーキテクチャSharePoint 2013 で適切な API セットを選択する