SharePoint Online ソリューションの開発

SharePoint Online には、社内設置型の SharePoint 開発に使用できる開発オプションのコアなサブセットを使用してカスタム ソリューションを作成できるように、堅牢で柔軟性の高い開発インターフェイスが開発者向けに用意されています。

最終更新日: 2011年10月17日

適用対象: SharePoint Designer 2010 | SharePoint Foundation 2010 | SharePoint Server 2010

この記事の内容
SharePoint Online ソリューションの開発
サンドボックス ソリューションを使用する SharePoint Online 開発
クライアント オブジェクト モデルによる SharePoint Online データへのアクセス

SharePoint Online で使用可能

SharePoint Online 管理者は、ファーム インストール全体ではなく、SharePoint Online 内のサイト コレクションを所有および管理するので、SharePoint Online に対する開発手法は必然的にサイト コレクションを対象としたものになります。

SharePoint Online ソリューションの開発

SharePoint Online での開発はサイト コレクション レベルを対象範囲とするので、カスタム SharePoint Online ソリューションの作成には主に次の 2 つの開発者向け機能を使用します。

  • サンドボックス ソリューション   "サンドボックス ソリューション" は、開発者がカスタム コード ソリューションを作成したり、SharePoint Online 管理者がカスタム コード ソリューションを SharePoint Online にアップロードしてアクティブにしたりするためのフレームワークを提供します。サンドボックス ソリューションは、サーバー オブジェクト モデルのコア サブセットにアクセスできる環境で実行されます。サンドボックス ソリューション フレームワークによって、開発者にはサイト コレクション以下のレベルにある主要オブジェクトへのアクセス権が付与されます。

  • クライアント オブジェクト モデル   クライアント オブジェクト モデルには、サーバー側の SharePoint オブジェクト モデル内でのコア オブジェクトの 3 つの対等かつ類似の表現があります。それらは、Microsoft .NET Framework マネージ モデル、Microsoft Silverlight モデル、および ECMAScript (JavaScript、JScript) モデルです。こうしたクライアント オブジェクト モデルにより、SharePoint データおよび機能へのリモート アクセスが可能になります。

    また、クライアント側コードを使用して、SharePoint Online によって利用可能になる Web サービスや、外部データ ソースにアクセスすることもできます。そのため、クライアント側コードは、サンドボックス ソリューションには含まれないものの SharePoint Online Web サービスで利用できるオブジェクトと、外部データのどちらにもアクセスする必要がある場合に便利なオプションです。

図 1 に、これらの開発オプションを示します。

  • サーバー オブジェクト モデルをサンドボックス ソリューションに使用する。

  • クライアント オブジェクト モデルとクライアント側コードを使用して、SharePoint Web サービスから使用できる追加のデータまたは外部ソースのデータにアクセスする。

実際には SharePoint Web パーツが SharePoint Online 内で実行されることに注意してください。ただし、この Web パーツが参照するクライアント側コードは、クライアントにダウンロードされてそこで実行され、SharePoint クライアント オブジェクト モデルを使用してデータ転送のために SharePoint Online に接続します。

図 1. SharePoint Online の開発オプション

SharePoint Online の開発オプション

サンドボックス ソリューションを使用する SharePoint Online 開発

SharePoint Online 開発では、社内設置型の SharePoint インストールの場合と同じフレームワークを使用して、カスタム コード ソリューションをパッケージ化して展開します。SharePoint Online 向けの開発では、サンドボックス ソリューションと呼ばれる特有の種類のソリューションを作成します。サンドボックス ソリューションにより、SharePoint Online 管理者は独自のカスタム コード ソリューションをアップロードできます。

サンドボックス ソリューションは、ファーム (完全信頼) ソリューションとほとんど同じように動作します。たとえば、サンドボックス ソリューションでは、SharePoint Online の拡張に使用できるすべてのコンポーネントをバンドルして、ソリューション ファイルと呼ばれる 1 つの新規ファイルにまとめることができます。サンドボックス ソリューションは、サイトに適用される一連の機能、サイト定義、およびアセンブリを含めることができ、個別に有効または無効にできる展開可能かつ再利用可能なパッケージです。サンドボックス ソリューション ファイルを使用して、アセンブリ、クラス リソース、Web パーツ記述 (.dwp) ファイル、その他のパッケージ コンポーネントなど、Web パーツ パッケージのコンテンツを展開できます。

サンドボックス ソリューションがファーム ソリューションと基本的に異なるのは、展開の方法とサーバー オブジェクト モデルにアクセスできる度合いです。サンドボックス ソリューションは、サーバー オブジェクト モデルのコア サブセットにアクセスできる別のプロセスで実行されます。すべての サンドボックス ソリューション は、1 つのソリューション ギャラリーに格納されます。また、サンドボックス ソリューション にはカスタムのコード アクセス セキュリティ (CAS) ポリシーが割り当てられます。

サンドボックス ソリューション で使用できる機能と要素、サンドボックス ソリューション の CAS ポリシー、およびサンドボックス ソリューションのリソース監視については、「サンドボックス ソリューションのアーキテクチャ」を参照してください。

サンドボックス ソリューションで利用できるサーバー オブジェクト モデルの型とメンバーについては、「サンドボックス ソリューションから使用可能な Microsoft.SharePoint.dll API」を参照してください。

SharePoint Online ソリューションの開発プロセス

以下に、SharePoint Online でサンドボックス ソリューションを作成、展開、アクティブ化するプロセスの基本的な手順を示します。

  1. ソリューションを開発してテストする。

    SharePoint Online ソリューションを作成したりカスタマイズしたりするには、SharePoint Server 2010 または SharePoint Foundation 2010 がインストールされているローカル コンピューター上でソリューションを開発する必要があります。この作業には、ソリューションのデバッグも含まれます。SharePoint Online 上では、ソリューションを直接デバッグできません。

    開発環境の設定後は、Visual Studio 2010 を使用してサンドボックス ソリューションを作成できます。SharePoint ソリューションを迅速に開発するためのツールである Visual Studio 2010 は、高度なデバッグ ツール、IntelliSense 機能、ステートメント候補、プロジェクト テンプレートといった機能を備えています。Visual Studio 2010 には、SharePoint アイテムを作成してサンドボックス ソリューションに含めるための特別なテンプレート群が用意されています。Visual Studio 2010 では、SharePoint Designer 2010 で作成されたソリューション パッケージ (.wsp) ファイルを開いたり編集したりでき、デザイナーと開発者は共通のフレームワークを利用してソリューションに対する緊密な共同作業ができます。

    ハードウェアに関する推奨事項、オペレーティング システムおよび Hyper-V のオプション、前提条件など、開発環境の設定の詳細については、「Windows Vista、Windows 7、および Windows Server 2008 で SharePoint 2010 の開発環境をセットアップする」を参照してください。

    Visual Studio 2010 を使用およびカスタマイズして効率を最大化する方法については、「Visual Studio を使用して SharePoint 開発を行う」を参照してください。

  2. ソリューションを展開してアクティブ化する。

    ローカル コンピューター上でのサンドボックス ソリューションの作成およびデバッグ後は、SharePoint Online の管理権限を持っていない限り、ソリューションを SharePoint Online 管理者に引き渡す必要があります。SharePoint Online 管理者は、アクティブ化のためにソリューション パッケージ (.wsp) ファイルをソリューション ギャラリーにアップロードします。

    詳細については、「Deploying a Sandboxed Solution」を参照してください。

    ユーザーがソリューションを利用できるようにするには、ソリューションをアクティブにする必要があります。サイト コレクション レベルを対象とする機能が含まれているサンドボックス ソリューション パッケージは、自動的にアクティブになります。サイト レベルを対象とするすべての機能は、https://servername/site/subsite/_layouts/managefeatures.aspx にある [サイト機能の管理] ページでアクティブにする必要があります。

  3. アクティブ化されたソリューションを監視する。

    アクティブ化されたソリューションは、消費するリソースの観点で監視されます。ソリューションのパフォーマンスは、CPU 実行時間、メモリ消費量、データベース クエリ時間など、複数の種類の計測値を使用して監視できます。

図 2 に、SharePoint Online でのサンドボックス ソリューション開発プロセスの主な手順を示します。

図 2. SharePoint Online でのサンドボックス ソリューション開発

サンドボックス ソリューションの開発プロセス

サンドボックス ソリューションの参考用の実装については、「参考実装: サンドボックス実行モデル」を参照してください。

サンドボックス ソリューションに関するトレーニングについては、Channel 9 の「Sandboxed Solutions」を参照してください。

SharePoint Online のその他のソリューションの制限

マルチテナント型の環境なので、サンドボックス ソリューション を Solution ギャラリーにアップロードすると、SharePoint Online は、社内設置型の SharePoint コンピューターによって実行される検証チェックに加え、さらに検証チェックを行います。サンドボックス ソリューション は、次の名前空間のいずれかを呼び出すコードが含まれている場合、有効化されません。

また、SharePoint Online の サンドボックス ソリューション のコードから次の型とメンバーは呼び出せません。

クライアント オブジェクト モデルによる SharePoint Online データへのアクセス

SharePoint Online には 3 つのクライアント オブジェクト モデルが含まれており、各モデルには、Microsoft.SharePoint.dll で定義されたサーバー オブジェクト モデルのほぼ同じサブセットが用意されています。JavaScript, .NET Framework マネージ、および Silverlight クライアント オブジェクト モデルのそれぞれには、SharePoint 階層のサイト コレクション レベル以下の主要オブジェクトに対応するオブジェクトが含まれています。これらのオブジェクト モデルによって、リモート クライアントまたはサーバーから SharePoint データとの相互運用を行うための、一貫性と使いやすさを備えたオブジェクト指向のシステムが実現されます。

クライアント オブジェクト モデルに反して記述されたコードは、クライアント上でリモート実行されるため、サンドボックス ソリューションと同様の制限を受けることはなく、たとえば、外部のデータ ソースにアクセスできます。

セキュリティ性とパフォーマンスを向上するために、クライアント オブジェクト モデルには、サーバー オブジェクト モデルで表現される型とメンバーのすべてではなく、クライアント開発にとって関連性の高い API のみが含まれています。クライアント ライブラリのサイズを制限することで、Silverlight および JavaScript のコンテキストでのライブラリのダウンロードに必要な時間が短縮されます。また、新しい API の設計によって、一般的なアクションで実行が必要なラウンドトリップ数が最小限に抑えられています。

クライアント オブジェクト モデルは、プロキシ .js ファイルおよびマネージ .dll ファイルによって提供されます。これらのファイルは、他のオブジェクト モデルで使用されているファイルと同じように参照できます。オブジェクト モデルは Windows Communication Foundation (WCF) サービスとして実装されますが、Web バインドを使用して要求を効率的にバッチ処理します。すべての動作が本質的に非同期で、コマンドが XML にシリアル化され、1 つの HTTP 要求でサーバーに送信されます。すべてのコマンドについて、対応するサーバー オブジェクト モデルが呼び出され、サーバーは圧縮された JavaScript Object Notation (JSON) 形式でクライアントに応答を返します。プロキシはこれを解析し、適切なオブジェクトに関連付けます。

図 3 に、クライアント オブジェクト モデルの呼び出しと応答の流れを示します。

図 3. SharePoint クライアント オブジェクト モデルのアーキテクチャ

SharePoint クライアント オブジェクト モデル アーキテクチャ

クライアント オブジェクト モデルの 1 つを使用してクライアント上で実行中のプログラムでは、リストの追加と削除、リスト アイテムの追加、更新、および削除、ドキュメント ライブラリ内のドキュメントの変更、サイトの作成、アイテムのアクセス許可の管理、ページに対する Web パーツの追加と削除などが行えます。

サポートされる開発領域の一部を以下に示します。

  • サイト コレクションおよびサイト

  • リスト、リスト アイテム、ビュー、およびリスト スキーマ

  • ファイルおよびフォルダー

  • Web、リスト、およびリスト アイテムのプロパティ バッグ

  • Web パーツ

  • セキュリティ

  • コンテンツ タイプ

  • サイト テンプレートおよびサイト コレクションの操作

注意

現時点では、SharePoint オンライン コンテンツには Office ID 資格情報のみを使用してプログラムによってアクセスできます。DirSync ツールを使用してインポートされた資格情報など、ユーザー資格情報を使用して、社内ドメインから SharePoint オンライン コンテンツにプログラムによってアクセスすることはできません。

SharePoint Online での Silverlight クライアント オブジェクト モデルの使用

Silverlight クライアント オブジェクト モデルや Silverlight クライアント オブジェクト モデルを使用すると、SharePoint Online 内で高機能かつ洗練化されたアプリケーションを作成できます。Silverlight (.xap) アプリケーションは、それ自身の .aspx ページ、または Web パーツ 内でホストできます。SharePoint Online には既定の Silverlight Web パーツが含まれていますが、サンドボックス ソリューションの一部としてカスタム Web パーツも作成できます。

SharePoint の Silverlight オブジェクト モデルを Silverlight Web パーツ内で使用する場合は、Visual Studio 2010 で Silverlight アプリケーションを作成し、プロジェクトの既定の Page.xaml.cs ファイル内にある Page クラスにコードを追加できます。プロジェクトのビルド後は、選択した任意のドキュメント ライブラリにプロジェクトのアプリケーション パッケージ (.xap) ファイルをアップロードします。Silverlight Web パーツを Web パーツ ページに挿入し、Web パーツの URL ソースがドキュメント ライブラリ内にある .xap ファイルのパスの場所を指すようにします。Web パーツには、InitParameters プロパティによって Silverlight に送信されるカスタム プロパティを含めることができます。

SharePoint Online でユーザーを認証する場合は、フォーム ベース認証 (FBA) を使用します。

また、Visual Studio 2010 を使用すると、展開およびアクティブ化の際に以下のアクションを実行する単一のソリューション (.wsp) ファイルを作成できます。

  • 既定の Silverlight Web パーツに基づいて、Silverlight アプリケーションをホストする Web パーツを展開する。

  • モジュールとしてパッケージされた Silverlight アプリケーション パッケージ (.xap) ファイルを指定したドキュメント ライブラリの場所に展開する。

  • Web パーツを埋め込むページをサイト ページ コレクション内に作成する。

ソリューションがアクティブになった後、ユーザーは作成されたページに移動し、Silverlight アプリケーションをホストしている Web パーツを操作できます。アプリケーション自体は、SharePoint の Silverlight オブジェクト モデルを使用して SharePoint Online データにリモートでアクセスできますが、ユーザーには SharePoint Online 内でホストされているように見えます。

SharePoint Online での ECMAScript オブジェクト モデルの使用

SharePoint Online では、同様の方法で JavaScript オブジェクト モデルも使用できます。ある .aspx ページのスクリプト ブロック内で JavaScript オブジェクト モデルを使用するカスタム コードを記述したり、別途作成した .js ファイルにコードを記述して .aspx ページから参照したりできます。詳細については、「ECMAScript を使用するアプリケーション ページをセットアップする」を参照してください。

SharePoint クライアント オブジェクト モデルの詳細情報

クライアント オブジェクト モデルの詳しい紹介については、「SharePoint Foundation 2010 のマネージ クライアント オブジェクト モデルの使用」を参照してください。詳細な技術情報と実装手順については、SharePoint 2010 SDK の以下のセクションを参照してください。

Silverlight クライアント アプリケーションの作成については、「Silverlight オブジェクト モデルを使用する」および「How to: Use a SharePoint Project to Deploy a Silverlight Application (英語)」を参照してください。

SharePoint クライアント オブジェクト モデルを使用した参考実装例については、「Reference Implementation: Client (英語)」を参照してください。

API リファレンス情報については、「クライアント クラス ライブラリ」および「ECMAScript クラス ライブラリ」を参照してください。

SharePoint クライアント オブジェクト モデルに関するトレーニングについては、Channel 9 の「Client Object Model」を参照してください。

関連項目

概念

SharePoint Designer 2010 を使用した SharePoint Online のカスタマイズ

SharePoint Online ソリューションの開発

SharePoint Online での Web サービス

SharePoint Online で使用できる開発者向け機能の一覧

SharePoint Online クイック リンク

その他の技術情報

SharePoint Online の全般的な参照情報

サンドボックス ソリューションのアーキテクチャ

サンドボックス ソリューションから使用可能な Microsoft.SharePoint.dll API

SharePoint Foundation 2010 のマネージ クライアント オブジェクト モデルの使用

Silverlight オブジェクト モデルを使用する

ECMAScript を使用するアプリケーション ページをセットアップする

マネージ クライアント オブジェクト モデル

クライアント オブジェクト モデルのガイドライン

一般的なプログラミング作業

クライアント クラス ライブラリ

ECMAScript クラス ライブラリ

SharePoint Online 開発者向けリソース センター