次の方法で共有


SharePoint オブジェクト モデルの呼び出し

Visual Studio 2010 で SharePoint ツールの拡張機能を作成するとき、特定のタスクを実行するために SharePoint の API を呼び出さなければならない場合があります。 たとえば、SharePoint プロジェクトに対してカスタムの配置手順を作成する場合、ソリューションを配置するためのいくつかのタスクを実行する関係上、SharePoint API を呼び出す必要があります。

Microsoft SharePoint Foundation 2010 および Microsoft SharePoint Server 2010 には、SharePoint ツールの拡張機能に使用できるオブジェクト モデルが 2 種類あります。サーバー オブジェクト モデルとクライアント オブジェクト モデルです。 SharePoint ツールの拡張機能からこれらのオブジェクト モデルを使用する場合、どちらのオブジェクト モデルにも長所と短所があります。

SharePoint のオブジェクト モデルの概要については、「SharePoint ツール拡張機能のプログラミング モデルの概要」を参照してください。

拡張機能プロジェクトでのクライアント オブジェクト モデルの使用

クライアント オブジェクト モデルは、SharePoint ツールの拡張機能を開発する場合に、プロジェクトから、他のあらゆるマネージ API と同じように使用できます。 クライアント オブジェクト モデルのアセンブリをプロジェクトから参照設定することによって、クライアント オブジェクト モデルの API を直接コードから呼び出すことができます。

ただし、SharePoint ツールの拡張機能からクライアント オブジェクト モデルを使用する場合、次の 2 つの短所があります。

  • クライアント オブジェクト モデルが提供するのは、サーバー オブジェクト モデルのサブセットのみです。 クライアント オブジェクト モデルでは公開されていない SharePoint の機能を使用する必要がある場合は、サーバー オブジェクト モデルを使用する必要があります。

  • SharePoint ツールの拡張機能でクライアント オブジェクト モデルを使用した場合、ほとんどのケースでは問題がないものの、クライアント オブジェクト モデルへの呼び出しがうまくいかない状況もあります。 クライアント オブジェクト モデルは、クライアント アプリケーションで、リモート サーバーまたはリモート ファームの SharePoint サイトに対して呼び出しを行うために使用されるように設計されています。 Visual Studio の SharePoint ツールは、開発コンピューターにインストールされたローカルの SharePoint 環境でのみ使用できます。 したがって、SharePoint ツールの拡張機能でクライアント オブジェクト モデルを使用する場合、呼び出し先はローカル コンピューター上のローカルの SharePoint サイトであり、これはクライアント オブジェクト モデルの意図された使用方法ではありません。

Visual Studio 2010 で、SharePoint ツールの拡張機能でクライアント オブジェクト モデルを使用する方法を示しているチュートリアルについては、「チュートリアル: サーバー エクスプローラーの拡張機能から SharePoint クライアント オブジェクト モデルを呼び出す」を参照してください。

拡張機能プロジェクトでのサーバー オブジェクト モデルの使用

サーバー オブジェクト モデルは、クライアント オブジェクト モデルのスーパーセットです。 サーバー オブジェクト モデルを使用した場合、Microsoft SharePoint Foundation 2010 および Microsoft SharePoint Server 2010 が公開しているすべての機能をプログラムから使用することができます。

サーバー オブジェクト モデルの API は、SharePoint ツールの拡張機能から使用することはできますが、API を直接呼び出すことはできません。 サーバー オブジェクト モデルは、.NET Framework 3.5 をターゲット フレームワークとする 64 ビット プロセスから呼び出すことができます。 一方、SharePoint ツールの拡張機能は .NET Framework 4 を使用し、32 ビットの Visual Studio プロセスで動作します。 そのため、SharePoint ツールの拡張機能は、SharePoint サーバー オブジェクト モデルのアセンブリを直接参照することができません。

SharePoint ツールの拡張機能でサーバー オブジェクト モデルを使用する必要がある場合は、API を呼び出すためのカスタム SharePoint コマンドを作成する必要があります。 SharePoint コマンドは、サーバー オブジェクト モデルを直接呼び出すことができる補助的なアセンブリで定義します。 拡張機能プロジェクトからは、ISharePointConnection オブジェクトの ExecuteCommand メソッドを使用して、SharePoint コマンドを間接的に呼び出します。

SharePoint コマンドの作成および使用の詳細については、「方法: SharePoint コマンドを作成する」および「方法: SharePoint コマンドを実行する」を参照してください。 SharePoint コマンドの配置方法の詳細については、「Visual Studio での SharePoint ツールの拡張機能の配置」を参照してください。

SharePoint コマンドの作成方法と使用方法を説明したチュートリアルは、「チュートリアル: SharePoint プロジェクトに対するカスタムの配置手順の作成」および「チュートリアル: サーバー エクスプローラーを拡張して Web パーツを表示する」を参照してください。

SharePoint コマンドを実行する方法について

SharePoint コマンドを定義するアセンブリは、vssphost4.exe という 64 ビット ホスト プロセスに読み込まれます。 SharePoint ツール拡張機能で SharePoint コマンドを呼び出した後は、そのコマンドは 32 ビットの Visual Studio プロセス (devenv.exe) ではなく、vssphost4.exe で実行されます。 SharePoint コマンドを実行する方法について一部の側面を制御するには、レジストリに値を設定します。 詳細については、「Visual Studio での SharePoint ツールの拡張機能のデバッグ」を参照してください。

参照

概念

SharePoint ツール拡張機能のプログラミング モデルの概要

その他の技術情報

方法: SharePoint コマンドを作成する

方法: SharePoint コマンドを実行する