SharePoint で適切な API セットを選択するChoose the right API set in SharePoint

SharePointで提供されるいくつかの API セットについて説明します。これには、サーバー側オブジェクト モデルや、さまざまなクライアント側オブジェクト モデル、REST/OData Web サービスなどが含まれます。Learn about the several sets of APIs that are provided in SharePoint, including the server object model and the various client object models, and the REST/OData web service.

どの API セットを使用するかを決める要素Factors that determine which API set to use

SharePoint プラットフォームへアクセスするには、いくつもの API から選択できます。どの API を使用するかは、次の要素によって異なります。You can choose from several sets of APIs to access the SharePoint platform. Which one you use depends on the following factors:

  • アプリケーションの種類。たとえば、次のものがありますが、相互に排他的なカテゴリではなく、これらに限定されません。SharePoint アドイン、SharePoint ページ上の Web パーツ、クライアント コンピューターまたはクライアント モバイル デバイスで実行される Silverlight アプリケーション、IFrame で SharePoint に表示されている ASP.NET アプリケーション、SharePoint サイト ページで実行される JavaScript、SharePoint アプリケーション ページ、クライアント コンピューターで実行される Microsoft .NET Framework アプリケーション、Windows PowerShell スクリプト、SharePoint サーバーで実行されるタイマー ジョブなどがあります。The type of application. The possibilities include, but are not limited to, the following, which are not mutually exclusive categories: an SharePoint Add-in, a Web Part on a SharePoint page, a Silverlight application running on either a client computer or a client mobile device, an ASP.NET application exposed in SharePoint by an IFrame, JavaScript running in a SharePoint site page, a SharePoint application page, a Microsoft .NET Framework application running on a client computer, a Windows PowerShell script, and a timer job running on a SharePoint server.

  • ユーザーの既存のスキル。SharePointでアプリケーションを作成するには、SharePoint のプログラミングに関する知識はそれほど必要ではありません。次のプログラミング モデルのいずれかに経験があれば、すぐに SharePoint 開発を開始できます。Your existing skills. To a surprising degree, you can create applications in SharePoint without needing to learn a lot about SharePoint programming. You can jump right into SharePoint development if you already have experience in any of the following programming models:

    • JavaScriptJavaScript

    • ASP.NETASP.NET

    • REST/ODataREST/OData

    • .NET Framework.NET Framework

    • Windows PhoneWindows Phone

    • SilverlightSilverlight

    • Windows PowerShellWindows PowerShell

  • コードが実行されるデバイス。 たとえば、SharePoint ファームのサーバー、クラウド上のサーバーのような外部のサーバー、クライアント コンピューター、モバイル デバイスなどがあります。The device on which the code runs. The possibilities include a server in the SharePoint farm, an external server such as a server in the cloud, a client computer, and a mobile device.

このトピックでは、SharePoint に用意されている各種 API セットの概要を説明します。図 1 は、13 の主な SharePoint 関連アプリケーションをそれぞれ開発するために使用できる API のセットを示します。多くのアプリケーションでは、使用する API を選択できます。This topic provides an overview of the various API sets that are provided by SharePoint. Figure 1 shows which sets of APIs can be used to develop each of 13 common SharePoint-related applications. For many applications, you can choose from more than one API.

図 1. 選択された SharePoint 拡張機能の種類と SharePoint の API セットFigure 1. Selected SharePoint extension types and SharePoint sets of APIs

API セットと SharePoint アプリ タイプのベン図

次の表は、選択された主な SharePoint 拡張プロジェクトの一覧と使用する API のセットについてのガイダンスを提供します。このトピックの残りのセクションでは、各種 API のセットについて説明します。The following table provides guidance on which set of APIs to use for a selected list of common SharePoint extensibility projects. The remaining sections of this topic describe the various sets of APIs.

開発の目標は...If you want to do this ... 使用する API は...... use these APIs
SharePoint データに対して、または ASP.NET 外部コンテンツ タイプを使用して SharePoint で実行される外部データに対して、ファイアウォール経由で作成/読み取り/更新/削除 (CRUD) 操作を実行する、Microsoft Business Connectivity Services (BCS) Web アプリケーションを作成するCreate an ASP.NET web application that performs create/read/update/deleted (CRUD) operations across a firewall on SharePoint data or external data that is surfaced in SharePoint by a Microsoft Business Connectivity Services (BCS) external content type
JavaScript クライアント オブジェクト モデルJavaScript client object model
SharePoint データに対して、または BCS 外部コンテンツ タイプを使用して SharePoint で実行される外部データに対して、SharePoint をファイアウォール経由で呼び出すことなく CRUD 操作を実行する、ASP.NET Web アプリケーションを作成するCreate an ASP.NET web application that performs CRUD operations on SharePoint data or external data that is surfaced in SharePoint by a BCS external content type, but does not have to call SharePoint across a firewall
.NET Framework クライアント オブジェクト モデル、Silverlight クライアント オブジェクト モデル、または REST/OData エンドポイント.NET Framework client object model, Silverlight client object model, or REST/OData endpoints
BCS 外部コンテンツ タイプを使用して、SharePoint データまたは SharePoint で実行される外部データに対して CRUD 操作を実行する、LAMP Web アプリケーションを作成するCreate a LAMP web application that performs CRUD operations on SharePoint data or external data that is surfaced in SharePoint by a BCS external content type
REST/OData エンドポイントREST/OData endpoints
SharePoint データに対して CRUD 操作を実行する Windows Phone アプリケーションを作成するCreate a Windows Phone app that performs CRUD operations on SharePoint data
モバイル クライアント オブジェクト モデルMobile client object model
Microsoft プッシュ通知サービスを使用して、モバイル デバイスに SharePoint のイベント発生を警告する、Windows Phone アプリケーションを作成するCreate a Windows Phone app that uses the Microsoft Push Notification Service to alert the mobile device of events in SharePoint
モバイル クライアント オブジェクト モデルおよびサーバー オブジェクト モデルMobile client object model and the server object model
SharePoint データに対して CRUD 操作を実行する iOS アプリまたは Android アプリを作成するCreate an iOS or Android app that performs CRUD operations on SharePoint data
REST/OData エンドポイントREST/OData endpoints
SharePoint データに対して CRUD 操作を実行する .NET Framework アプリケーションを作成するCreate a .NET Framework application that performs CRUD operations on SharePoint data
.NET Framework クライアント オブジェクト モデル.NET Framework client object model
SharePoint データに対して CRUD 操作を実行する Silverlight アプリケーションを作成するCreate a Silverlight application that performs CRUD operations on SharePoint data
Silverlight クライアント オブジェクト モデルSilverlight client object model
SharePoint データに対して CRUD 操作を実行する HTML/JavaScript アプリケーションを作成するCreate an HTML/JavaScript application that performs CRUD operations on SharePoint data
JavaScript クライアント オブジェクト モデルJavaScript client object model
SharePoint で機能する Office アドイン を作成するCreate an Office Add-in that works with SharePoint
JavaScript クライアント オブジェクト モデルJavaScript client object model
カスタム Windows PowerShell コマンドを作成するCreate a custom Windows PowerShell command
サーバー オブジェクト モデルServer object model
タイマー ジョブを作成するCreate a timer job
サーバー オブジェクト モデルServer object model
全体管理用の拡張機能を作成するCreate an extension of Central Administration
サーバー オブジェクト モデルServer object model
SharePoint ファーム全体に対して一貫したブランド化を行うCreate consistent branding across an entire SharePoint farm
サーバー オブジェクト モデルServer object model
カスタム Web パーツ、アプリケーション ページ、または ASP.NET ユーザー コントロールを作成するCreate a custom Web Part, application page, or ASP.NET user control
サーバー オブジェクト モデルServer object model
重要: 顧客に提供する機能がサイト コレクションの範囲を超えていて SharePoint 管理に向いていない場合は、サーバー オブジェクト モデルを使用する代りにリモート ASP.NET Web アプリケーションを含む SharePoint アドインを作成することをお勧めします。Important: If the functionality you want to offer customers is not oriented to SharePoint administration at a scope broader than site collection, we recommend that, instead of using the server object model, you create an SharePoint Add-in that includes a remote ASP.NET web application with custom Web Parts and user controls as needed. この表の最上部の 2 行を参照してください。See the top two rows of this table.

サーバー オブジェクト モデルServer object model

最も多数の API のセットがマネージ クラスのサーバー オブジェクト モデルにあります。SharePoint Foundation 2013 のレベルでいうと、このオブジェクト モデルには、SharePoint Foundation の基本的なサイトやリスト構造のプログラム的な制御ができるクラスやメンバーが含まれます。これらのクラスの多くは、 Microsoft.SharePoint 名前空間にあります。さらに、ワークフロー、アラート、Web パーツ、基本的な検索、Microsoft Business Connectivity Services (BCS)など、ほとんどすべての SharePoint Foundation コンポーネントはサーバー オブジェクト モデルを使用することで拡張できます。また、サーバー オブジェクト モデルには、SharePoint Foundation の管理やセキュリティ システムを拡張できる API のセットも含まれます。これらには、バックアップ、ファームの状態と診断、ログ、ファームと Web アプリケーションの管理、アップグレード、展開、キャッシュ、Windows PowerShell のカスタマイズなどがあります。The largest set of APIs is in the server object model of managed classes. At the level of SharePoint Foundation 2013, this object model includes classes and members that enable programmatic control of the basic site and list structure of SharePoint Foundation. Most of these classes are in the Microsoft.SharePoint namespace. In addition, you can extend almost every SharePoint Foundation component by using the server object model, including workflows, alerts, Web Parts, basic search, and Microsoft Business Connectivity Services (BCS). The server object model also includes an extensive set of APIs enable extensions of the administration and security system of SharePoint Foundation, including backup, farm health and diagnostics, logging, farm and web application management, upgrade, deployment, caching, and Windows PowerShell customization.

SharePoint のレベルでは、さらに多くのクラスが追加され、エンタープライズ コンテンツ管理 (ECM)、ユーザー プロファイル、分類、高度な検索、および SharePoint のその他の機能のプログラミングができるようになります。At the level of SharePoint, many more classes are added to enable programming of Enterprise Content Management (ECM), user profiles, taxonomy, advanced search, and other features of SharePoint.

LINQ to Objects を使用すると、メモリにある IEnumerable コレクションを照会できます。ただし、 LINQ to SharePoint プロバイダーにより、SharePoint コンテンツ データベースのリストを直接照会できます。厳密には、このプロバイダーはこのトピックで説明されているどの API セットにおいても利用できません。ただし、LINQ 構文を使用する方法はあります。You can use LINQ to Objects to query any IEnumerable collection in memory, but a LINQ to SharePoint provider enables direct querying of the lists in the SharePoint content databases. Strictly speaking, this provider is not available with any other set of APIs discussed in this topic; however, there are ways to use LINQ syntax in most of the others.

SharePoint がインストールされると、組み込みのサーバー側クラスを定義するアセンブリが、各サーバーのグローバル アセンブリ キャッシュにインストールされます。サーバー オブジェクト モデルに対してプログラミングを行うと、アセンブリは ファーム ソリューション としてグローバル アセンブリ キャッシュにインストールされます。The assemblies that define the built-in server-side classes are installed to the global assembly cache of each server when SharePoint is installed. When you program against the server object model, your assemblies are installed as farm solutions to the global assembly cache.

注意

SharePoint に対する新しいセキュリティで保護されたソリューションの開発は非推奨になり、SharePoint アドインの開発が代わりましたが、セキュリティで保護されたソリューションは引き続き SharePoint のサイト コレクションにインストールできます。Note: Developing new sandboxed solutions against SharePoint is deprecated in favor of developing SharePoint Add-ins, but sandboxed solutions can still be installed to site collections on SharePoint. これらのソリューションのアセンブリは、実際に使用されている場合を除いて、サーバー上のフォルダに一時的にインストールされた時点でパッケージに残ります。The assemblies of these solutions remain in the package except when they are actually in use, at which time they are temporarily installed to a folder on the server. 詳細については、「サンドボックス ソリューション内のアセンブリが展開される場所」を参照してください。For more information, see Where are Assemblies in Sandboxed Solutions Deployed?.

サーバー オブジェクト モデルを使用する場合の制限事項Limitations on when you can use the server object model

SharePoint アドイン のカスタム ロジックは、常にクライアントかクラウド (または SharePoint ファームの外部にあるサーバー) に配布されます。これらの配布モデルのすべてにおいて、クライアント オブジェクト モデルまたは REST/OData エンドポイントのどれかを使用する必要があります (SharePoint アドイン内のサーバー オブジェクト モデルは使用できません)。たとえば、アプリに SharePoint のホストされたページが含まれる場合は、これらのページから、JavaScript クライアント オブジェクト モデルを使用して SharePoint のデータにアクセスできます。このようなページでは、SharePointSilverlight クライアント オブジェクト モデルを使用している Silverlight アプリケーションを表示することもできます。SharePoint アドイン の詳細については、「 SharePoint アドインのアーキテクチャおよび開発環境に関する重要な要素」を参照してください。Custom logic in SharePoint Add-ins is always distributed "down" to the client or "up" to the cloud (or "over" to some server outside the SharePoint farm). In all of these distribution models, one of the client object models or the REST/OData endpoints must be used. (You cannot use the server object model in an SharePoint Add-in.) For example, if the app contains SharePoint-hosted pages, those pages can access SharePoint data by using the JavaScript client object model. Such pages could also expose Silverlight applications that use the SharePoint Silverlight client object model. For more information about SharePoint Add-ins, see Important aspects of the SharePoint Add-in architecture and development landscape.

マネージ コード用のクライアント オブジェクト モデルClient object models for managed code

SharePointには, .NET、Silverlight、モバイル というマネージ コード用の 3 つのクライアント オブジェクト モデルがあります。SharePoint has three client object models for managed code: .NET, Silverlight, and mobile.

.NET クライアント オブジェクト モデル.NET client object model

.NET Framework 用の SharePoint オブジェクト モデルは、電話用でない Windows クライアント上で実行される .NET Framework アプリケーションで使用されます。次は、どれもそのようなクライアントです。The SharePoint object model for .NET Framework is used in .NET Framework applications that run on a non-phone Windows client. Any of the following counts as such a client:

  • ユーザーのコンピューターA user's computer

  • SharePoint ファームの外部にあるサーバーA server that is external to the SharePoint farm

  • Microsoft Azure の Web ロールまたは worker ロールA web role or worker role on Microsoft Azure

サーバー オブジェクト モデルの主要なサイトやリストのほとんどすべてのクラスには、.NET Framework クライアント オブジェクト モデルに該当するクラスがあります。Almost every class in the core site and list server object model has a corresponding class in the .NET Framework client object model. さらに、.NET Framework クライアント オブジェクト モデルでは、ECM、分類、ユーザー プロファイル、高度な検索、分析、BCS などの SharePoint の機能を拡張するための API のフル セットも公開されています。In addition, the .NET Framework client object model exposes a full set of APIs for extending other features, including some SharePoint features such as ECM, taxonomy, user profiles, advanced search, analytics, BCS, and others.

パフォーマンスを向上するために, .NET Framework クライアント オブジェクト モデルに対して記述されたコード行は、バッチで SharePoint サーバーに送信され、そのバッチでサーバー側コードに変換されて実行されます。すると、クエリ結果やすべての変数の新しい状態がクライアントに返されます。開発者は、同期的または非同期的にバッチを実行するかを決めます。(同期的なバッチ実行では, .NET Framework アプリケーションがサーバーから返される結果を待って処理を続行します。非同期的なバッチ実行では、クライアント側の処理が直ちに続行され、クライアントのユーザー インターフェイス (UI) は応答可能な状態を維持します)。To improve performance, lines of code written against in the .NET Framework client object model are sent to the SharePoint server in batches where they are converted to server-side code and executed. The queried results, and the new state of all variables, are then returned to the client. You as the developer determine whether a batch runs synchronously or asynchronously. (In a synchronous batch, the .NET Framework application waits for the returned results from the server before continuing; in an asynchronous batch, client-side processing continues immediately and the client user interface (UI) remains responsive.)

クライアント コードで LINQ クエリ構文を使用すると、 IEnumerable を実装する SharePoint オブジェクトなどの IEnumerable オブジェクトを照会できます。ただし、これを行う場合、 LINQ to SharePoint プロバイダーではなく LINQ to Objects を使用していることになります。このため、前者のドキュメントはクライアント側コードにおいて必要ありません。You can use LINQ query syntax in your client code to query any IEnumerable object, including SharePoint objects that implement IEnumerable. However, when you do this, you are using LINQ to Objects, not the LINQ to SharePoint provider, so documentation of the latter is not relevant to client-side code.

.NET Framework クライアント オブジェクト モデル用のアセンブリは、クライアント上にインストールする必要があります。これらのアセンブリは、再頒布可能パッケージに含まれていて、 SharePoint クライアント コンポーネントで入手可能です。The assemblies for the .NET Framework client object model must be installed on the client. They are included in a redistributable package that you can obtain on the SharePoint Client Components.

.NET Framework の使用例については、「SharePoint のクライアント ライブラリ コードを使用して基本的な操作を完了する」を参照してください。For examples of using the .NET Framework object model, see Complete basic operations using SharePoint client library code.

注意

.NET Framework アプリケーションで SharePoint REST/OData エンドポイントを使用することもできます。Note: You can also use the SharePoint REST/OData endpoints in a .NET Framework application. .NET Framework クライアント オブジェクト モデルと SharePoint REST/OData エンドポイントとの比較については、後述する「REST/OData エンドポイント」を参照してください。For a comparison of the .NET Framework client object model with the SharePoint REST/OData endpoints, see the section REST/OData endpoints later in this article.

Silverlight クライアント オブジェクト モデルSilverlight client object model

Silverlight 用の SharePoint オブジェクト モデルは、コンパイルされた .xap ファイルが保存される場所にかかわらず、Silverlight アプリケーションで使用されます。その場所は、SharePoint Web サイト上のアセット ライブラリ内、クライアント コンピューター上、クラウドのストレージ内、外部サーバー上などの可能性があります。一般的に、Silverlight アプリケーションは SilverlightWebPart オブジェクトの SharePoint で表示されます。SharePoint での Silverlight クライアント オブジェクト モデルは, .NET Framework クライアント オブジェクト モデルとほぼ同じで、同じ拡張領域をサポートします。大きく異なるのは、Silverlight バージョンでは、アプリケーションの UI がアクティブな状態を維持できるように、コマンドのバッチはすべて、サーバーに非同期的に送信されるということです。The SharePoint object model for Silverlight is used in Silverlight applications, regardless of where the compiled .xap file is persisted. It may be in an assets library on a SharePoint website, on a client computer, in cloud storage, or on an external server. Typically, a Silverlight application is surfaced in SharePoint in a SilverlightWebPart object. The Silverlight client object model in SharePoint is nearly identical to the .NET Framework client object model, and it includes support for the same extensibility areas. The principal difference is that in the Silverlight version, all batches of commands are sent to the server asynchronously so that the UI of the application remains active.

Silverlight クライアント オブジェクト モデル用のアセンブリは、どの SharePoint サーバーでも %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\15\TEMPLATE\LAYOUTS\ClientBin で保持されます。これらのアセンブリは、Silverlight アプリケーションが実行されるコンピューターにインストールする必要はありません (インストールする選択肢はあります)。また、これらをアプリケーションの .xap ファイルにパッケージ化することもできます。The assemblies for the Silverlight client object model are persisted on every SharePoint server at %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\15\TEMPLATE\LAYOUTS\ClientBin. They do not have to be installed on the computer that is running the Silverlight application, although you have the option of doing so. Also, you can package them into the .xap file of the application.

Silverlight の .xap ファイルは、SharePoint がホストされたアプリを含む SharePoint アドインに含まれます。前者の場合, .xap ファイルはアプリ Web 上のライブラリに展開されます (アプリ Web の詳細については、「 SharePoint のホスト Web、アドイン Web、および SharePoint コンポーネント」を参照)。カスタム サーバー側コードは SharePoint アドインでは使用できないため、Silverlight アプリケーションは、アプリにカスタム SharePoint コードを追加するための有用な方法になります。また、Silverlight の開発者は、既存のスキルを使用し、あまり学習に時間をかけずに SharePoint アプリケーションを作成できます。Silverlight .xap files can be included in SharePoint Add-ins, including SharePoint-hosted apps. In the latter case, the .xap file is deployed to a library on the app web. (For more information about app webs, see Host webs, add-in webs, and SharePoint components in SharePoint.) This makes a Silverlight application a useful way of including custom SharePoint code in an app, because custom server-side code is not allowed in SharePoint Add-ins. It also enables Silverlight developers to use their existing skills to create SharePoint applications with a minimal learning curve.

注意

Silverlight アプリケーションで SharePoint REST/OData エンドポイントを使用することもできます。Note: You can also use the SharePoint REST/OData endpoints in a Silverlight application. Silverlight クライアント オブジェクト モデルと SharePoint REST/OData エンドポイントとの比較については、後述の「REST/OData エンドポイント」を参照してください。For a comparison of the Silverlight client object model with the SharePoint REST/OData endpoints, see the section REST/OData endpoints later in this article.

モバイル オブジェクト モデルMobile object model

Windows Phone 対応の端末では、Silverlight クライアント オブジェクト モデルの特別バージョンが利用できます。これには、電話にだけ関係のある追加の API が含まれます。たとえば、電話アプリが Microsoft プッシュ通知サービス からの通知を登録するための API などがあります。この特別バージョンは、すべての主要な SharePoint 機能をサポートしますが、他の 2 つのマネージ コード用のクライアント オブジェクト モデルがサポートしている主要でない拡張領域はサポートしません。これらの主要でない拡張領域にアクセスするには、モバイル アプリケーション内で SharePoint REST/OData エンドポイントを使用します。後述の「 REST/OData エンドポイント」を参照してください。A special version of the Silverlight client object model is available for Windows Phone devices. It includes some additional APIs that are relevant only to telephones, such as APIs that enable a phone app to register for notifications from the Microsoft Push Notification Service. It supports all core SharePoint functionality; however, it does not provide support for any of the non-core extensibility areas that are supported by the other two client object models for managed code. To access those additional areas, use the SharePoint REST/OData endpoints in your mobile app. See the section REST/OData endpoints later in this article.

モバイル オブジェクト モデル用のアセンブリは、どの SharePoint サーバーでも %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\15\TEMPLATE\LAYOUTS\ClientBin で保持されます。これらのアセンブリは、Windows Phone アプリケーションの .xap ファイルにパッケージ化します。The assemblies for the mobile object model are persisted on every SharePoint server at %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\15\TEMPLATE\LAYOUTS\ClientBin. You package them into the .xap file of your Windows Phone application.

JavaScript オブジェクト モデルJavaScript object model

SharePoint は、インライン スクリプトや別途作成した .js ファイルで使用するための JavaScript オブジェクト モデルを提供します。このモデルには, .NET Framework クライアント オブジェクト モデルや Silverlight クライアント オブジェクト モデルと同じ機能がすべて含まれます。カスタム サーバー側コードは SharePoint アドインでは使用できないため、JavaScript オブジェクト モデルは、Silverlight クライアント オブジェクト モデルのように、アプリにカスタム SharePoint コードを追加するための有用な方法になります。また、Web 開発者は、既存の JavaScript のスキルを使用し、あまり学習に時間をかけずに SharePoint アプリケーションを作成できます。SharePoint provides a JavaScript object model for use in either inline script or separate .js files. It includes all the same functionality as the .NET Framework and Silverlight client object models. Like the Silverlight client object model, the JavaScript object model is a useful way of including custom SharePoint code in an app, because custom server-side code is not allowed in SharePoint Add-ins. It also enables web developers to use their existing JavaScript skills to create SharePoint applications with a minimal learning curve.

マネージ コード クライアント オブジェクト モデルと同様に、SharePoint 用の JavaScript インフラストラクチャは、バッチでファーム サーバーとやり取りします。これらのバッチは、常に非同期的に実行されます。さらに、JavaScript を使ってドメインを超えて SharePoint のデータにアクセスできます (ただし、同じ親サイト コレクション内のデータのみに限ります)。これは以前のバージョンの SharePoint では実現できなかったことです。詳細については、「 クロスドメイン ライブラリを使用してアドインから SharePoint のデータにアクセスする」を参照してください。データは、JavaScript Object Notation (JSON) でサーバーから返されます。Just like the managed-code client object models, the JavaScript infrastructure for SharePoint interacts with the farm servers in batches. These batches always run asynchronously. In addition, it is now possible to access SharePoint data across domains in JavaScript (but only data that is within the same parent site collection), which was not allowed in previous versions of SharePoint. For more information, see Access SharePoint data from add-ins using the cross-domain library. Data is returned from the server in JavaScript Object Notation (JSON).

JavaScript オブジェクト モデルは、各サーバーの %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\15\TEMPLATE\LAYOUTS にある一連の *.js ファイルで定義されています。The JavaScript object model is defined in a set of *.js files located at %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\15\TEMPLATE\LAYOUTS on each server.

.NET Framework オブジェクト モデルの使用例については、「SharePoint の JavaScript ライブラリ コードを使用して基本的な操作を完了する」を参照してください。For examples of using the .NET Framework object model, see Complete basic operations using JavaScript library code in SharePoint.

注意

JavaScript アプリケーションで SharePoint REST/OData エンドポイントを使用することもできます。Note: You can also use the SharePoint REST/OData endpoints in a JavaScript application. JavaScript クライアント オブジェクト モデルと SharePoint の REST/OData エンドポイントとの比較については、次のセクション「REST/OData エンドポイント」を参照してください。For a comparison of the JavaScript client object model with SharePoint's REST/OData endpoints, see the following section, REST/OData endpoints.

REST/OData エンドポイントREST/OData endpoints

JavaScript を使用せず, .NET Framework や Silverlight のプラットフォーム上に構築されていないクライアント環境から SharePoint エンティティにアクセスする必要があるシナリオでは、SharePoint は、 OData プロトコルを使用して SharePoint リスト データに対して CRUD 操作を実行する Representational State Transfer (REST) Web サービスの実装を提供します。さらに、クライアント オブジェクト モデルのほとんどすべての API には、対応する REST エンドポイントがあります。これにより、ユーザーのコードは、標準の HTTP 要求と応答をサポートする技術を使用することで SharePoint 成果物と直接やり取りできます。SharePoint に組み込まれている REST 機能を使用するには、目的のクライアント オブジェクト モデルの API に対応するエンドポイントに対しての REST 対応の HTTP 要求をコードに記述して作成します。client.svc Web サービスは HTTP 要求を処理し、Atom 形式か JSON 形式で応答をします。For scenarios in which you need to access SharePoint entities from client technologies that do not use JavaScript and are not built on the .NET Framework or Silverlight platforms, SharePoint provides an implementation of a Representational State Transfer (REST) web service that uses the OData protocol to perform CRUD operations on SharePoint list data. In addition, almost every API in the client object models has a corresponding REST endpoint. This enables your code to interact directly with SharePoint artifacts by using any technology that supports standard HTTP requests and responses. To use the REST capabilities that are built into SharePoint, your code constructs a RESTful HTTP request to an endpoint that corresponds to the desired client object model API. The client.svc web service handles the HTTP request and serves a response in either Atom or JSON format.

REST/OData Web サービスの使用の詳細については、「 SharePoint REST サービスを使用したプログラミング」を参照してください。コード例について「 SharePoint REST エンドポイントを使用して基本的な操作を完了する」のトピックを参照してください。For more information about using the REST/OData web service, see the node Use OData query operations in SharePoint REST requests; for examples, see the topic Complete basic operations using SharePoint REST endpoints.

REST/OData プログラミングとクライアント オブジェクト モデル プログラミングとの比較Comparing REST/OData programming with client object model programming

状況によっては、特に、Windows 開発経験のない開発者の方は、SharePoint オブジェクト モデルが提供されているアプリケーションであっても、REST エンドポイントを使用した方がいい場合があります。以下に、Windows プラットフォーム上または JavaScript をサポートするプラットフォーム上で動作するアプリケーションを作成する開発者のために、この 2 つのプログラミング手法における主な機能の比較表を示します。In some situations, it might be preferable to use the REST endpoints even in applications for which a SharePoint object model is available, especially for developers who do not have Windows development experience. The following table provides a comparison of the major features of these programming choices for a developer creating an application on a Windows platform or with a platform that supports JavaScript.

機能Feature .NET Framework または Silverlight オブジェクト モデル.NET Framework or Silverlight object models JavaScript オブジェクト モデルJavaScript object model Windows プラットフォームまたは JavaScript から呼び出される REST/OData エンドポイントREST/OData endpoints called from a Windows platform or JavaScript
オブジェクト指向プログラミングObject-oriented programming
はいYes
はいYes
いいえNo
バッチ処理Batch processing
はいYes
はいYes
はいYes
条件処理および例外処理用の APIAPIs for conditional processing and exception handling
はいYes
いいえNo
いいえNo
LINQ 構文の使用Availability of LINQ syntax
はいYes
いいえNo
いいえNo
異なる SharePoint Web アプリケーションからのリスト データの結合Combining list data from different SharePoint web applications
はいYes
いいえNo
はいYes
経験豊富な REST/OData 開発者にとっての習得のしやすさFamiliarity to experienced REST/OData developers
いいえNo
いいえNo
はいYes
Windows 以外のプログラミングまたは JavaScript プログラミングに対する類似性Similarity to non-Windows programming or JavaScript programming
いいえNo
はいYes
はいYes
リスト アイテム フィールドの厳密な型指定Strong typing for list item fields
いいえ ( LINQ と共に使用する場合を除く)No (except with LINQ)
いいえNo
はい (Windows プラットフォームの場合) いいえ (JavaScript の場合)Yes, from Windows platform No, from JavaScript
jQuery、Knockout、およびその他の JavaScript ライブラリの利用Leveraging jQuery, Knockout, and other JavaScript libraries
いいえNo
はいYes
いいえ (Windows プラットフォームの場合) はい (JavaScript の場合)No, from Windows platform Yes, from JavaScript

WCF Data Services フレームワークWCF Data Services Framework

.NET Framework クライアント アプリケーションおよび Silverlight クライアント アプリケーションで LINQ 構文を使用する場合、SharePoint は、LINQ プロバイダーとして WCF Data Services をサポートします。ユーザーは、SharePoint Foundation の以前のバージョンでのように listdata.svc (リスト データのみ) を対象にできます。また、リスト データだけでなく OData インターフェイスのすべての SharaPoint エンティティへのアクセスをサポートする同じ client.svc も対象にできます。詳細については、「 ADO.NET Data Services を使用して SharePoint Foundation のクエリを実行する」を参照してください。If you prefer to use LINQ syntax in .NET Framework or Silverlight client applications, SharePoint supports WCF Data Services as a LINQ provider. You can target either the listdata.svc (for list data only) as in earlier versions of SharePoint Foundation, or you can target the same client.svc that supports the OData interface for access to all SharePoint entities in addition to list data. For more information, see Query SharePoint Foundation with ADO.NET Data Services.

図 1 は、さまざまなクライアント API、さまざまな種類のクライアント アプリケーション、および SharePoint の関係を表しています。各種 _api* URL は、REST エンドポイントのファーム関連の URL です。詳細については、「 SharePoint 15 REST サービスの詳細」のトピックを参照してください。Figure 2 illustrates the relationship of the various client APIs, various types of client applications, and SharePoint. The various _api* URLs are the farm-relative URLs for the REST endpoints. For more information, see the topic Learning more about the SharePoint 15 REST service.

図 2. SharePoint でのクライアント アプリケーションと APIFigure 2. Client applications and APIs in SharePoint

SharePoint 用アプリのプログラミング モデル

非推奨の API セットDeprecated API sets

下位互換性を保つために SharePoint フレームワークでサポートされている API セットが 2 つありますが、これらの API セットは新規のプロジェクトに使用しないことをお勧めします。該当の API は、 ASP.NET (asmx) Web サービスおよび owssvr.dll ファイルへの直接リモート プロシージャ コール (RPC) です。Two API sets are still supported in the SharePoint framework for backward compatibility, but we recommend that you not use them for new projects: the ASP.NET (asmx) web services, and direct Remote Procedure Calls (RPC) calls to the owssvr.dll file.

関連項目See also