次の方法で共有


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

更新 : 2010 年 5 月

Visual Studio 2010 で SharePoint ツールの拡張機能を作成する場合、SharePoint ツールによって公開される 1 つ以上の機能拡張インターフェイスを実装することから始めます。 ほとんどの場合、SharePoint ツールによって提供される他の型も使用して、拡張機能で機能を実装します。 一部のシナリオでは、Visual Studio および SharePoint によって提供される他のオブジェクト モデルに含まれる型も使用します。 これらの各オブジェクト モデルの用途と、これらを組み合わせて使用して SharePoint ツールの拡張機能を作成する方法を理解する必要があります。

機能拡張インターフェイスの実装による SharePoint ツールの拡張

Visual Studio は、.NET Framework 4 の MEF (Managed Extensibility Framework) を使用して SharePoint ツールの機能拡張モデルを提供します。 MEF は、アプリケーションが機能拡張ポイントを公開したり、実行時に拡張機能を検出し、読み込んだりできるようにする (System.ComponentModel.Composition アセンブリで実装される) API です。 MEF の詳細については、「Managed Extensibility Framework の概要」を参照してください。

SharePoint ツールを拡張するには、Visual Studio によって公開される 1 つ以上の機能拡張インターフェイスを実装します。 System.ComponentModel.Composition.ExportAttribute、および必要に応じて SharePoint ツール固有のその他の属性をインターフェイスの実装に適用する必要もあります。 次の表に、SharePoint ツールを拡張するために実装できるインターフェイスを示します。

インターフェイス

説明

ISharePointProjectItemTypeProvider

このインターフェイスは、新しい種類の SharePoint プロジェクト項目を定義する際に実装します。 例については、「方法: SharePoint プロジェクト項目の種類を定義する」を参照してください。

ISharePointProjectItemTypeExtension

このインターフェイスは、Visual Studio に既にインストールされている SharePoint プロジェクト項目の種類を拡張する場合に実装します。 例については、「方法: SharePoint プロジェクト項目の拡張機能を作成する」を参照してください。

ISharePointProjectExtension

このインターフェイスは、SharePoint プロジェクトを拡張する場合に実装します。 例については、「方法: SharePoint プロジェクトの拡張機能を作成する」を参照してください。

IDeploymentStep

SharePoint プロジェクト項目を配置または取り消すときに実行できる新しい配置手順を定義するには、このインターフェイスを実装します。 例については、「チュートリアル: SharePoint プロジェクトに対するカスタムの配置手順の作成」を参照してください。

IExplorerNodeTypeExtension

[サーバー エクスプローラー] ウィンドウの [SharePoint 接続] ノードの下の既存のノードを拡張するには、このインターフェイスを実装します。 例については、「方法: サーバー エクスプローラーの SharePoint ノードを拡張する」を参照してください。

IExplorerNodeTypeProvider

[サーバー エクスプローラー] ウィンドウの [SharePoint 接続] ノードの下に新しい型のノードを定義するには、このインターフェイスを実装します。 例については、「方法: サーバー エクスプローラーの SharePoint ノードを拡張する」を参照してください。

IFeatureValidationRule

カスタムのフィーチャー検証規則を定義するには、このインターフェイスを実装します。 例については、「方法: SharePoint ソリューションのフィーチャーとパッケージのカスタム検証規則を作成する」を参照してください。

IPackageValidationRule

カスタムのパッケージ検証規則を定義するには、このインターフェイスを実装します。 例については、「方法: SharePoint ソリューションのフィーチャーとパッケージのカスタム検証規則を作成する」を参照してください。

SharePoint ツールの拡張機能を実装したら、拡張機能アセンブリを Visual Studio Integration Extension (VSIX) のパッケージに配置し、Visual Studio が拡張機能を検出し、読み込むことができるようにする必要があります。 詳細については、「Visual Studio での SharePoint ツールの拡張機能の配置」を参照してください。

SharePoint ツールの拡張機能で使用するオブジェクト モデルについて

SharePoint ツールの拡張機能を作成するときに使用できるいくつかのオブジェクト モデルを次に示します。

  • SharePoint ツールのオブジェクト モデル。 このオブジェクト モデルには、SharePoint ツールの拡張機能を作成するために実装する機能拡張インターフェイスと、その他の関連する型が用意されています。

  • Visual Studio のオートメーション オブジェクト モデルと Visual Studio の統合オブジェクト モデル。 これらのオブジェクト モデルを使用して、SharePoint ツールのオブジェクト モデルの範囲を超える Visual Studio の機能にアクセスします。

    注意

    SharePoint ツールのオブジェクト モデルに存在するいくつかのオブジェクトは、SharePoint プロジェクト サービスを使用して、Visual Studio のオートメーション オブジェクト モデルおよび Visual Studio の統合オブジェクト モデルのオブジェクトに変換できます。それとは逆方向の変換も可能です。 詳細については、「SharePoint プロジェクト システムと他の Visual Studio プロジェクトの間の型変換」を参照してください。

  • SharePoint サーバー オブジェクト モデルと SharePoint クライアント オブジェクト モデル。 これらのオブジェクト モデルを使用して、SharePoint サイトに変更を加えたり、SharePoint ツールの拡張機能のコンテキストから SharePoint サイトのデータを取得したりします。

SharePoint ツールのオブジェクト モデル

SharePoint ツールの各拡張機能では、SharePoint ツールのオブジェクト モデルの型を使用して、拡張機能の主要な動作と機能が定義されます。 以下の表に、このオブジェクト モデルに含まれる名前空間を示します。

アセンブリ

名前空間

説明

Microsoft.VisualStudio.SharePoint.dll

Microsoft.VisualStudio.SharePoint

SharePoint プロジェクト システムを拡張および自動化するために使用する型があります。 たとえば、組み込みの SharePoint プロジェクトやプロジェクト項目を拡張できるほか、独自のプロジェクト項目を作成することもできます。 詳細については、「SharePoint プロジェクト システムの拡張」を参照してください。

Microsoft.VisualStudio.SharePoint.Deployment

独自の配置手順や配置構成の作成など、SharePoint プロジェクトの配置プロセスを拡張するために使用する型があります。 詳細については、「SharePoint のパッケージ化と配置の拡張」を参照してください。

Microsoft.VisualStudio.SharePoint.Explorer

[サーバー エクスプローラー] ウィンドウの [SharePoint 接続] ノードの下のノードを拡張したり、新しい型のノードを定義したりするために使用する型があります。 詳細については、「サーバー エクスプローラーの [SharePoint 接続] ノードの拡張」を参照してください。

Microsoft.VisualStudio.SharePoint.Features

SharePoint プロジェクトの機能の定義にアクセスするために使用する型があります。

Microsoft.VisualStudio.SharePoint.Packages

SharePoint ソリューションのパッケージ定義にアクセスするために使用する型があります。

Microsoft.VisualStudio.SharePoint.Validation

SharePoint プロジェクトの機能およびパッケージ検証動作をカスタマイズするために使用する型があります。 詳細については、「方法: SharePoint ソリューションのフィーチャーとパッケージのカスタム検証規則を作成する」を参照してください。

Microsoft.VisualStudio.SharePoint.Commands.dll

Microsoft.VisualStudio.SharePoint.Commands

カスタム SharePoint コマンドの作成に使用できる型があります。 SharePoint コマンドは、SharePoint のサーバー オブジェクト モデルに対する呼び出しを SharePoint ツールの拡張機能から行うメソッドです。 詳細については、「SharePoint オブジェクト モデルの呼び出し」を参照してください。

Microsoft.VisualStudio.SharePoint.Explorer.Extensions.dll

Microsoft.VisualStudio.SharePoint.Explorer.Extensions

リスト、フィールド、コンテンツ タイプを表すノードなど、SharePoint サイトの個々のコンポーネントを表す、組み込みのサーバー エクスプローラー ノードに関する情報を取得するために使用する型があります。 詳細については、「サーバー エクスプローラーの [SharePoint 接続] ノードの拡張」を参照してください。

Visual Studio のオートメーション オブジェクト モデル

Visual Studio のオートメーション オブジェクト モデルには、Visual Studio のプロジェクトおよび IDE を自動化するために使用できる API が用意されています。 SharePoint プロジェクトに限定されないプロジェクト関連のタスクや、Visual Studio の全般的なオートメーション タスクを実行するには、Visual Studio のオブジェクト モデルを使用します。 このオブジェクト モデルは、以前から Visual Studio のアドインやマクロで使用されていましたが、SharePoint ツールの拡張機能で使用することもできます。

Visual Studio のオートメーション オブジェクト モデルの核となる部分は EnvDTE.dll アセンブリに定義されています。 Visual Studio 2005、Visual Studio 2008、および Visual Studio 2010 で追加された機能は、EnvDTE80.dll、EnvDTE90.dll、および EnvDTE100.dll の各アセンブリに含まれています。 これらのアセンブリは、Visual Studio 2010 には付属していません。

オートメーション オブジェクト モデルの詳細については、「Visual Studio 環境の拡張」および「オートメーションと機能拡張のリファレンス」を参照してください。

Visual Studio の統合オブジェクト モデル

統合オブジェクト モデルには、VSPackage の作成によって Visual Studio に機能を追加することのできる API が用意されています。 VSPackage は、カスタム機能 (ツール ウィンドウ、エディター、デザイナー、サービス、プロジェクトなど) を提供することによって Visual Studio IDE を拡張するモジュールです。

組み込みの SharePoint ツールと組み合わせて使用する新しい Visual Studio 機能を追加するには、統合オブジェクト モデルを使用します。 たとえば、SharePoint サイトのカスタム動作を表すカスタム SharePoint プロジェクト項目を作成する場合、そのカスタム動作のデザイナーを実装する VSPackage を作成することもできます。 ソリューション エクスプローラーにおいてカスタム動作を表すプロジェクト項目にコンテキスト メニュー項目を追加することによって、そのカスタム動作にデザイナーを関連付けることができます。 開発者は、カスタム動作のプロジェクト項目を右クリックして、デザイナーを開くことができます。

このオブジェクト モデルは、Visual Studio SDK に付属の一連のアセンブリで定義されています。 このオブジェクト モデルに含まれる主要なアセンブリとしては、Microsoft.VisualStudio.Shell.dll、Microsoft.VisualStudio.Shell.Interop.dll、Microsoft.VisualStudio.OLE.Interop.dll などがあります。

統合オブジェクト モデルの詳細については、「Visual Studio Development Environment Model」および「Visual Studio SDK Reference」を参照してください。

SharePoint のオブジェクト モデル

SharePoint ツールの拡張機能から SharePoint の API を使用して、SharePoint サイトに変更を加えたり、SharePoint サイトからデータを取得したりできます。 Microsoft SharePoint Foundation 2010 および Microsoft SharePoint Server 2010 には、オブジェクト モデルが 2 種類あります。サーバー オブジェクト モデルとクライアント オブジェクト モデルです。

どちらのオブジェクト モデルの API も SharePoint ツールの拡張機能から使用できます。ただし、SharePoint ツールの拡張機能からこれらのオブジェクト モデルを使用する場合、それぞれ長所と短所があります。 詳細については、「SharePoint オブジェクト モデルの呼び出し」を参照してください。

オブジェクト モデル

説明

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

サーバー オブジェクト モデルを使用すると、Microsoft SharePoint Foundation 2010 および Microsoft SharePoint Server 2010 が公開しているすべての機能をプログラムから使用することができます。 このオブジェクト モデルは、SharePoint サーバー上で動作する SharePoint ソリューションから使用することを前提に設計されています。 このオブジェクト モデルの大部分は、Microsoft.SharePoint.dll アセンブリで定義されています。 サーバー オブジェクト モデルの詳細については、「Using the SharePoint Foundation Server-Side Object Model (SharePoint Foundation Server 側オブジェクト モデルの使用)」を参照してください。

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

クライアント オブジェクト モデルは、リモート クライアントまたはリモート サーバーの SharePoint データとの相互運用に使用できるサーバー オブジェクト モデルのサブセットです。 一般的なタスクに必要なラウンド トリップの回数を最小限に抑えるようにデザインされています。 クライアント オブジェクト モデルの大部分は、Microsoft.SharePoint.Client.dll および Microsoft.SharePoint.Client.Runtime.dll アセンブリで定義されています。 クライアント オブジェクト モデルの詳細については、「Managed Client Object Model (マネージ クライアント オブジェクト モデル)」を参照してください。

参照

概念

Visual Studio の SharePoint ツールの拡張

Visual Studio Development Environment Model

その他の技術情報

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

SharePoint プロジェクト サービスの使用

履歴の変更

日付

履歴

理由

2010 年 5 月

SharePoint ツールのオブジェクト モデルによって公開される MEF インターフェイスに関する新しい詳細情報を追加。

情報の拡充