SharePoint アドインSharePoint Add-ins

SharePoint アドインには 2 つの基本的な種類、SharePoint ホスト型とプロバイダー ホスト型があります。There are two basic kinds of SharePoint Add-ins: SharePoint-hosted and provider-hosted. シナリオの開発に適した種類について最適な決定をするには、SharePoint アドインの両方の種類の共通点を学ぶことから始めます。To make the best decision about the right kind to develop for your scenario, start by learning what both types of SharePoint Add-ins have in common.


モバイル アプリなどのデバイス アプリは、SharePoint にアクセスしても実際には「SharePoint アドイン」ではありません。A device app, such as mobile app, isn't really a "SharePoint Add-in" even when it accesses SharePoint. 同じことが、SharePoint の外部から起動される Web アプリケーションにも当てはまります。The same is true of a web application that is launched from outside of SharePoint. これらの種類のアプリを開発する場合は、「モバイルおよびネイティブ デバイス アプリから SharePoint にアクセスする」を参照してください。If you want to develop any of these kinds of apps, see Access SharePoint from mobile and native device apps.

  • SharePoint アドインは機能の自己完結型の部分であり、SharePoint Web サイトの機能を拡張して、適切に定義されたビジネス上の問題を解決します。A SharePoint Add-in is a self-contained piece of functionality that extends the capabilities of SharePoint websites to solve a well-defined business problem.

  • アドインには、SharePoint サーバー上で実行されるカスタム コードはありませんAdd-ins don't have custom code that runs on SharePoint servers. 代わりに、すべてのカスタム ロジックがクラウドに「上げられる」か、またはクライアント コンピュータに「下げられる」か、または SharePoint ファームや SharePoint Online サブスクリプションの外部にあるオンプレミス サーバーに「移される」ことになります。Instead, all custom logic moves "up" to the cloud, or "down" to client computers, or "over" to an on-premises server that is outside the SharePoint farm or SharePoint Online subscription. SharePoint サーバーでカスタム コードをオフにしておくと、SharePoint 管理者は、アドインがサーバーに危害を加えたり、SharePoint Online Web サイトのパフォーマンスを低下させたりすることがないという安心感が得られます。Keeping custom code off SharePoint servers provides reassurance to SharePoint administrators that the add-in can't harm their servers or reduce the performance of their SharePoint Online websites.

  • SharePoint アドインのビジネス ロジックは、SharePoint に含まれるいくつかのクライアント API のうちのいずれかを使用して SharePoint データにアクセスできます 。アドインに使用する API は、他の特定の設計上の決定に応じて異なります。Business logic in a SharePoint Add-in can access SharePoint data through one of the several client APIs included in SharePoint. Which API you use for your add-in depends on certain other design decisions you make.

  • ページ、リスト、ワークフロー、カスタム コンテンツ タイプ、リスト テンプレート、Web パーツなどを含む主な種類の SharePoint コンポーネントは、ほぼすべて SharePoint アドインの一部にすることができます。Almost all major types of SharePoint components can be part of a SharePoint Add-in, including pages, lists, workflows, custom content types, list templates, web parts, and more.

  • SharePoint アドインがインストールされ、ユーザーがそれらを起動する SharePoint Web サイトは、ホスト Web と呼ばれます。The SharePoint websites where SharePoint Add-ins are installed, and from which users launch them, are called host webs. ただし、SharePoint コンポーネントは通常、アドイン Web と呼ばれるホスト Web の特別な子 Web にあります。The SharePoint components, however, are generally in a special child web of the host web called the add-in web.

  • SharePoint アドインは、次に示すいくつかの方法で SharePoint Web サイトに収めることができますSharePoint Add-ins can fit into a SharePoint website in several ways:

    イマーシブ ページ全体の SharePoint アプリのエクスペリエンス 完全に没入型でページ全体に表示される形式として (SharePoint ページと同じ外観にできます)。As an immersive full-page experience that can have the look and feel of a SharePoint page.
    SharePoint アプリのアプリ パーツのエクスペリエンス Web ページの一部として (アドイン パーツと呼ばれる特別な種類のコントロールを使用してAs part of a webpage, using a special kind of control called an add-in part, to surface an
    アドインを格納する iframe 要素を表示する。)iframe element that contains the add-in.
    SharePoint アプリのカスタム アクション エクスペリエンス リボンとメニューを拡張する UI コマンドとして (リスト項目やドキュメントなどで)。As UI commands that extend ribbons and menus for lists, documents, and more.
  • SharePoint Web サイトの [サイト コンテンツ] ページに、ユーザーがインストールしたすべての SharePoint アドインのタイルがあります。All SharePoint Add-ins that users install get a tile on the Site Contents page of the SharePoint website. タイルをクリックすると、アドインを実行します。Clicking the tile runs the add-in.

  • SharePoint アドインは、_アドイン マニフェスト_を使用して構成されます。 アドイン マニフェストは、アドインの基本プロパティ、動作する場所、アドインの開始時に SharePoint が何を実行する必要があるかを宣言する XML ファイルです。A SharePoint Add-in is configured using an add-in manifest—an XML file that declares the add-in's basic properties, where it runs, and what SharePoint should do when the add-in starts. とりわけ、アドインでサポートされる言語、アドインが依存する SharePoint のサービスと機能、アドインが必要とするホスト Web へのアクセス権を指定できます。Among other things, the manifest can specify what languages the add-in supports, what SharePoint services and functionality it depends on, and the permissions to the host web that the add-in needs. (SharePoint アドインには独自のアドイン Web のフル コントロールがあります。)(SharePoint Add-ins have full control of their own add-in web.)

  • SharePoint アドインはアドイン パッケージとして配布されます。 このパッケージには、1 つ以上のアドイン マニフェストが必ず含まれています。You distribute SharePoint Add-ins in add-in packages that always include at least the add-in manifest. (SharePoint コンポーネントがない場合、アドイン パッケージ内にアドイン マニフェストしかない場合もあります。) アドイン Web 内にアドインの SharePoint コンポーネントがある場合は、XML ファイルのセットとしてパッケージに組み込まれます。(If there are no SharePoint components, the add-in manifest may be the only thing in the add-in package.) If the add-in has SharePoint components in an add-in web, these are included in the package as a set of XML files. リモート Web アプリケーションやデータベースなど、SharePoint 外でホストされるリモート コンポーネントは、パッケージに組み込まれておらず、アドイン パッケージとは別に展開されます。Remote components that are hosted outside of SharePoint, such as a remote web application or database, are not included in the package and are deployed separately from the add-in package. (ただし、アドイン マニフェストはリモート コンポーネントの URL を指定します。)(However, the add-in manifest does specify the URLs of the remote components.)

  • Office アドインがアドイン パッケージに組み込まれる場合もあります。 SharePoint アドインのインストール時に、Office アドインは SharePoint 内の Office アドイン カタログに追加されます。Add-in packages can also include Office Add-ins. When the SharePoint Add-in is installed, the Office Add-in is added to an Office Add-ins catalog in SharePoint. ユーザーは、このカタログから、Word や Excel のような Office アプリケーションにインストールできます。Users can install it from the catalog into Office applications such as Word or Excel.


開発可能な機能について理解するには、Office ストアいくつかの SharePoint アドインを参照してください。Take a look at a few SharePoint Add-ins in the Office Store to get a sense of what you can develop. SharePoint Web サイトを開いて無料の SharePoint アドインをインストールすることもできます。[サイト コンテンツ]| [アドインの追加] |[SharePoint ストア] に移動してください。Or open a SharePoint website and install some of the free SharePoint Add-ins. Just navigate to Site Contents | add an add-in | SharePoint Store.

熟練した SharePoint 開発者向けの注意点A few points for veteran SharePoint developers

カスタム サーバー側コードを含むセキュリティで保護されたソリューションの使用は廃止されました。「コードのない」セキュリティで保護されたソリューションや、JavaScript のみを含むセキュリティで保護されたソリューションは引き続きサポートされています。We've deprecated sandboxed solutions that contain custom server-side code. We still support "No code" sandboxed solutions and sandboxed solutions that contain only JavaScript.

SharePoint アドインはサーバー側 SharePoint オブジェクト モデルを使用しません。SharePoint Add-ins don't use the server-side SharePoint object model. SharePoint ではクライアント側オブジェクト モデルが大幅に拡張されています。The client-side object models are greatly expanded in SharePoint. SharePoint サーバー オブジェクト モデルの一部の API は、クライアント オブジェクト モデルでは使用できませんが、これらはほとんどすべて管理関連とセキュリティ関連のクラスです。Although some APIs in the SharePoint server object model aren't available in the client object models, these are almost entirely administrative and security-related classes. Windows PowerShell スクリプトや従来の SharePoint ファーム ソリューションには、これらの領域に対処するカスタム SharePoint ロジックの方が適しています。Custom SharePoint logic that addresses these areas is more appropriate for a Windows PowerShell script or classic SharePoint farm solution. SharePoint アドイン、従来の SharePoint ファーム ソリューション、セキュリティで保護されたソリューションの中からの選択については、「SharePoint アドインと SharePoint ソリューションの比較」を参照してください。To learn how to choose among SharePoint Add-ins, classic SharePoint farm solutions, and sandboxed solutions, see SharePoint Add-ins compared with SharePoint solutions.

アドイン パッケージの配布または販売に関する 2 つの方法Two ways to distribute or sell an add-in package

次の 2 つの方法で、アドイン パッケージを配布できます。You can distribute an add-in package in two ways:

  • 組織のアドイン カタログに。これは、SharePoint Online サブスクリプションまたはオンプレミス ファーム内の専用の SharePoint サイト コレクションです。To an organization's add-in catalog, which is a dedicated SharePoint site collection in the SharePoint Online subscription or on-premises farm. この方法は、アドインが特定の組織向けにオーダーメイドされている場合に使用します。This method is used when the add-in is custom-made for a particular organization.

  • Office ストアTo the Office Store. このストアは、検索から購入、更新まで、マーケティング プロセスを処理します。The store handles the marketing process for you, from discovery to purchase to updates. マイクロソフトは、Office ストアを通じてアドインを販売するのに役立つ販売者ダッシュボードを提供しています。Microsoft has a Seller Dashboard to help you sell add-ins through the Office Store.

どちらかの方法でアドインを展開した後、SharePoint Web サイトの [ アドインの追加] ページでインストールできるようになります。ホスト Web かその親のサブスクリプションへのアクセス許可が必要なアドインの場合、SharePoint からそのアドインをインストールするユーザーに対してそれらのアクセス許可を付与するように求められます。After you deploy the add-in in either way, it's available for installation on the add an add-in page of SharePoint websites. If the add-in needs permissions to the host web or its parent subscription, SharePoint prompts the user who installs the add-in to grant those permissions.

バグの修正や機能の追加のためにアドインを更新する必要がある場合は、アドイン マニフェスト内で変更を加えてアドインのバージョン番号を上げます。それから、アドイン パッケージをストアかアドイン カタログに再展開します。SharePoint の UI で、ユーザーは更新版が利用可能になったことを示す通知を 24 時間以内に受け取ります。1 回クリックするだけで更新版をインストールできます。When you need to update an add-in to fix a bug or to add functionality, make the changes and raise the add-in's version number in the add-in manifest. Then redeploy the add-in package to the store or add-in catalog. Within 24 hours, users get a notice in the SharePoint UI that an update is available. They can install the update with a single click.

2 種類のSharePoint アドイン: SharePoint ホスト型とプロバイダー ホスト型Two types of SharePoint Add-ins: SharePoint-hosted and provider-hosted

SharePoint ホスト型アプリとプロバイダー向けのホスト型アプリの比較

SharePoint ホスト型 SharePoint アドインSharePoint-hosted SharePoint Add-ins

SharePoint ホスト型アドインは、アドイン Web 内の SharePoint コンポーネントでほぼすべて構成されます。中心が Sharepoint 内にあると表現されることもあります。SharePoint-hosted add-ins consist almost entirely of SharePoint components in an add-in web. They are sometimes said to have their center in SharePoint.

すべての SharePoint アドインと同様に、ユーザーは SharePoint ホスト型アドインを、そのインストール先の SharePoint Web サイトの [サイト コンテンツ] ページ上のタイルから実行できます。Like all SharePoint Add-ins, a user can run a SharePoint-hosted add-in from a tile on the Site Contents page of the SharePoint website to which it's installed. オプションで、他にアドイン パーツとカスタム アクション (つまり、カスタムのリボン ボタンやメニュー項目) の 2 種類の UI コンポーネントをホスト Web 内に持つこともできます。Optionally, it can also have two other kinds of UI components in the host web: add-in parts and custom actions (that is, custom ribbon buttons or menu items). SharePoint ホスト型アドイン内の他のコンポーネントはすべてアドイン Web に展開されます。Everything else in a SharePoint-hosted add-in is deployed to the add-in web. これらのコンポーネントは、XML ファイルを使用して宣言的に定義され、とりわけ、次のものが含まれます。These components are defined declaratively using XML files, and they can include, among others:

カスタム ページCustom pages ワークフローWorkflows モジュール (ファイルのセット)Modules (sets of files)
リスト テンプレートList templates リストとライブラリのインスタンスList and library instances カスタム リスト フォームとビューCustom list forms and views
カスタム コンテンツ タイプCustom content types Web テンプレートWeb templates 組み込み列 (カスタム列ではない)Built-in columns (not custom columns)
組み込み Web パーツ (カスタム Web パーツではない)Built-in web parts (not custom web parts) JavaScript ファイルJavaScript files アドイン Web のカスタムのボタンとメニュー項目Custom buttons and menu items for the add-in web

SharePoint ホスト型アドイン内のすべてのビジネス ロジックは JavaScript を、直接カスタム ページで使用するか、またはカスタム ページから参照される JavaScript ファイル内で使用します。All business logic in a SharePoint-hosted add-in uses JavaScript, either directly on a custom page or in a JavaScript file that is referenced from a custom page. JavaScript バージョンの SharePoint オブジェクト モデル (JSOM) を使用すると、アドインが SharePoint データに対して CRUD (作成、読み取り、更新、削除) 操作を実行する方法を簡素化できます。A JavaScript version of the SharePoint object model (JSOM) is available to make it simple for the add-in to perform CRUD (create, read, update, and delete) operations on SharePoint data.

SharePoint ホスト型アドイン内のカスタム ページは、通常は ASP.NET ページ (ASPX) で、ASP.NET コントロールや組み込みの SharePoint コントロールを宣言的に参照できますが、背後にコードがない場合もあります。Custom pages in a SharePoint-hosted add-in are generally ASP.NET pages (ASPX), and they can declaratively reference ASP.NET and in-the-box SharePoint controls, but there can be no code behind. ただし、クライアント側レンダリング オプションやカスタム JavaScript を使用して SharePoint コントロールをカスタマイズできます。However, you can customize the SharePoint controls by using a client-side rendering option and custom JavaScript.

SharePoint ホスト型アドイン内の JavaScript は、特別な JavaScript クロスドメイン ライブラリか特定の JavaScript WebProxy クラスのいずれかの、ブラウザーの同一生成元ポリシーを安全に回避する 2 つの手法のいずれかを使用して、アドイン Web 外のデータやリソースにアクセスできます。The JavaScript in SharePoint-hosted add-ins can access data and resources that are outside of the add-in web by using either of two techniques for safely working around the browser's same origin policy: a special JavaScript cross-domain library or a specific JavaScript WebProxy class. これらの手法を使用して、SharePoint ホスト型アドインはホスト Web、その親のサブスクリプション、またはインターネット上の任意の場所のデータを操作できます。Using these techniques, a SharePoint-hosted add-in can work with data on the host web, its parent subscription, or anywhere on the Internet.

プロバイダー ホスト型 SharePoint アドインProvider-hosted SharePoint Add-ins

SharePoint ホスト型アドイン内に組み込める SharePoint コンポーネントを、プロバイダー ホスト型アドインにも組み込めます。Any SharePoint component that can be in a SharePoint-hosted add-in can also be in a provider-hosted add-in. しかし、プロバイダー ホスト型アドインは、1 つ以上のリモート コンポーネント (SharePoint ファームや SharePoint Online サブスクリプションの外部でホストされる Web アプリケーション、サービス、データベースなど) が含まれている点が SharePoint ホスト型アドインと異なります。But provider-hosted add-ins are distinguished from SharePoint-hosted add-ins because they include at least one remote component, such as a web application, service, or database, that is hosted externally from the SharePoint farm or SharePoint Online subscription. これは、SharePoint ファームと同じ企業ネットワーク内のサーバーや、クラウド サービスなどです。This could be a server in the same corporate network as a SharePoint farm or a cloud service. 外部コンポーネントは、Linux、Apache、MySQL、PHP (LAMP) スタックなど、任意の Web ホスト型スタックでホストできます。The external components can be hosted on any web hosting stack, including the Linux, Apache, MySQL, and PHP (LAMP) stack.


「プロバイダー」は、サーバーやクラウド アカウントを所有する人です。The "provider" is whoever owns the server or cloud account. アドインのインストール場所の SharePoint ファームか SharePoint Online テナンシーを所有している会社や組織の場合もあります。It can be the same company or organization that owns the SharePoint farm or SharePoint Online tenancy where the add-in is to be installed. しかし、アドインの開発者もプロバイダーになれます。But the developer of the add-in can also be the provider. 通常、組織に対するアドインを作成する際には、その組織がホスティングを提供します。Typically, when an add-in is created for an organization, the organization provides the hosting. しかし、複数の組織に対するアドインを作成するときは、開発者がリモート コンポーネントをホストする場合が多くなります。However, when an add-in is created for multiple organizations, it's more likely that the developer hosts the remote components. SharePoint アドインが Office ストアを通じて販売される場合は、開発者はアドインの購入者の連絡先情報がわからないので、開発者によるホスティングが必要です。Developer-hosting is mandatory if the SharePoint Add-in is being marketed through the Office Store, because the developer doesn't have any contact information for the add-in purchasers. このシナリオでは、アドイン マニフェスト内で指定されているため、アドインのさまざまなインスタンスがリモート コンポーネントの URI を認識しています。In this scenario, the various instances of the add-in know the URI of the remote component because it is specified in the add-in manifest.

リモート コンポーネントに使用するホスティング フレームワークには高い柔軟性があります。You have complete flexibility for the hosting framework that you use for the remote components. Microsoft スタックを使用する必要はありません。You don't have to use a Microsoft stack. LAMP (Linux、Apache サーバー、MySQL、PHP)、MEAN (MongoDB、ExpressJS、AngularJS、Nodejs)、Java、Python などの任意の Web ホスティング フレームワークを使用できます。Microsoft 以外の開発ツールを使用しても問題ありません。Any web hosting framework can be used, including LAMP (Linux, Apache server, MySQL, PHP), MEAN (MongoDB, ExpressJS, AngularJS, Nodejs), Java, Python, and others, and you are welcome to use non-Microsoft development tools. さらに、Microsoft 以外のクラウド サービスでリモート コンポーネントをホストすることもできます。In addition, the remote components can be hosted in non-Microsoft cloud services.

特別なクロム コントロールを使用して、アドイン内のリモート ページに SharePoint ページの外観を付与できますYou can give remote pages in the add-in the look and feel of SharePoint pages by using a special chrome control.

BLOB、キャッシュ、メッセージ キュー、コンテンツ配信ネットワーク (CDN)、データベースなどのリモート データを使用できます 。リレーショナルやオブジェクト指向など、どの種類のデータベースでも使用できます。リモート データにはさまざまな方法でアクセスできます。たとえば、Business Connectivity Services (BCS) を使用して SharePoint リストのデータを表示できます。また別の選択肢としては、リモート Web アプリケーションのページ上のグリッドでデータを公開する方法があります。Remote data can be blobs, caches, message queues, content delivery networks (CDN), and databases, among others. And databases can be any type including relational and object-oriented. The remote data can be accessed in a variety of ways. For example, you can use Business Connectivity Services (BCS) to surface the data in a SharePoint list. Another option is to expose data in a grid on a page of a remote web application.

SharePoint アドインは SharePoint API を使用して、SharePoint 機能に接続して統合します 。そのような機能としては、検索、ワークフロー、ソーシャル ネットワーキング、分類、ユーザー プロファイル、BCS などがあります。これによってアプリはドキュメントの読み取り、検索の実行、人のつながりの構築、CRUD 操作などを行います。この API には以下の複数のセットがあります。SharePoint Add-ins use SharePoint APIs to connect and integrate with SharePoint features—search, workflow, social networking, taxonomy, user profiles, BCS, and more. This lets them read documents, do searches, connect people, and perform CRUD operations. There is more than one set of the APIs:

  • .NET を使用してリモート コンポーネントが実装されている場合、マネージ コードの SharePoint クライアント側オブジェクト モデル (CSOM) ライブラリを使用できます。When the remote components are implemented with .NET, the managed code SharePoint Client-Side Object Model (CSOM) library is available.

  • .NET に基づいていないリモート コンポーネントには、SharePoint データにアクセスするために使用できる REST/OData API のセットがあります。For remote components that are not based on .NET, a set of REST/OData APIs can be used to access SharePoint data. OData インターフェイスの操作を選んだ場合、.NET クライアントから使用することもできます。These can also be used from a .NET client if you prefer working with an OData interface.

  • 前述の JSOM ライブラリ はリモート ページでは使用できませんが、プロバイダー ホスト型アドインはアドイン Web 内にカスタム SharePoint ページを持つことができ、これらのページ上の JavaScript は JSOM ライブラリを使用できます。The JSOM library, mentioned earlier, cannot be used on a remote page, but provider-hosted add-ins can have custom SharePoint pages in an add-in web, and JavaScript on these pages can use the JSOM library.

SharePoint にアクセスするプロバイダー ホスト型アドインは、ユーザーやグループと同じくセキュリティ プリンシパルです 。ユーザーの場合と同様に、アドインのプリンシパルが認証されて承認される必要があります。アドインには、ホスト Web 内の SharePoint データに対して操作を実行するアクセス許可が必要です。ほとんどのシナリオでは、SharePoint アドインを通じて SharePoint を操作するユーザーのアクセス許可として有効なのは、ユーザーのアクセス許可とアドインのアクセス許可の共通部分ですが、ユーザーがアクセス許可を持っていない操作をアドインを使用して実行できるシナリオもあります。Provider-hosted add-ins that access SharePoint are security principals just as users and groups are. The add-in principal has to be authenticated and authorized, just as the user does. The add-in needs permissions to perform operations on SharePoint data in the host web. In most scenarios, the effective permissions of a user working with SharePoint through a SharePoint Add-in are the intersection of the user's and the add-in's permissions, although there are some scenarios in which a user can do things with an add-in that she wouldn't otherwise have permission to do.

プロバイダー ホスト型アドインは、内部や公共の Web サービスに接続できます。また SharePoint ホスト型アドインとは違って、ドキュメント ライブラリへのアイテムの追加など、SharePoint のリスト イベントやリスト項目イベントを処理できます。Provider-hosted add-ins can connect to any internal or public web service and, unlike SharePoint-hosted add-ins, they can handle SharePoint list and list item events, such as adding an item to a document library.

SharePoint 開発パスの選択Choose your SharePoint development path

始める準備はいいですか。Ready to get started?


SharePoint と Web 開発の初心者の方は、最初に Microsoft Virtual Academy の無料のコースを利用するか、または SharePoint の開発に関する資料を読むと、最大の益が得られます。If you're a beginner at both SharePoint and web development, you'd benefit most by starting with the free course at Microsoft's Virtual Academy, or working through a book about SharePoint development.

関連項目See also