SharePoint Foundation の Web パーツ インフラストラクチャ

最終更新日: 2010年4月14日

適用対象: SharePoint Foundation 2010

Web パーツは、Microsoft SharePoint Foundation サイト ページのコンテキスト内で実行するサーバー側のコントロールです。これを使用すると、ユーザー インターフェイス (UI) をカスタマイズしたり、サイト ページのコンテンツを編集したりできます。SharePoint Foundation には、既定の Web パーツが付属しているだけでなく、カスタム Web パーツも作成できます。SharePoint Foundation では、2 種類の Web パーツがサポートされています。これらは、SharePoint Web パーツおよび ASP.NET Web パーツと呼ばれています。ASP.NET Web パーツが System.Web.UI.WebControls.WebParts.WebPart 基本クラスを使用するのに対して、SharePoint Web パーツは Microsoft.SharePoint.WebPartPages.WebPart 基本クラスを使用します。両方の種類ともサポートされていますが、新しいプロジェクトでは ASP.NET Web パーツが推奨されます。

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

SharePoint Foundation 内の Web パーツは、Microsoft ASP.NET Web パーツ インフラストラクチャに基づいています。SharePoint Foundation をターゲットとするアプリケーション用の Web パーツを作成するには、ASP.NET Web パーツ インフラストラクチャの上にカスタム Web パーツを作成する必要があります。ただし、まれに、ASP.NET Web パーツ インフラストラクチャで使用できない SharePoint Foundation 機能をサポートする Web パーツを作成することが必要になる場合もあります。

ASP.NET Web パーツ

ASP.NET Web パーツ インフラストラクチャは、実行時に Web パーツ インスタンスの有効期限を管理する WebPartManager クラスに基づいています。

Web パーツ コントロールを使用する各 ASP.NET ページには、個人用設定をサポートするために、次のオブジェクトが含まれている必要があります。

  • 特定の各領域に追加された Web パーツを記録し、各 Web パーツがどのようにカスタマイズされ個人用に設定されるかに関するデータを保存および取得する、唯一の WebPartManager オブジェクト。

  • Web パーツが配置されている 1 つ以上の WebPartZone オブジェクト。

ASP.NET アプリケーションで SharePoint Foundation Web パーツを実行するには、WebPartManager コントロールの 1 つのインスタンスと 1 つ以上の WebPartZone コントロールが含まれる .aspx ページを作成する必要があります。WebPartManager は、Web パーツ関連のデータのシリアル化と共に、そのデータの格納やサービス データベースからの取得にも関与します。

SPWebPartManager コントロールと WebPartZone コントロールは、Web パーツと関連付けられたデータを、適切な SharePoint Foundation コンテンツ データベースにシリアル化することを管理します。データの保持を可能にするには、ASP.NET Web パーツをこの 2 つのコントロールと共にページ上に配置する必要があります。

これらの SharePoint Foundation に固有なコントロールは、Web パーツを含むページ上に必要なので、ASP.NET ページを単に SharePoint Foundation サイトにコピーすることはできません。ASP.NET Web パーツを ASP.NET アプリケーションから SharePoint Foundation アプリケーションに移動するには、これを ASP.NET から .webpart ファイルとしてエクスポートして、SharePoint Foundation サイトにインポートする必要があります。

SharePoint Web パーツ

SharePoint Foundation の Web パーツ インフラストラクチャは、ASP.NET Web パーツ コントロール セットにあるコントロールの多くを使用すると共に、ASP.NET Web パーツ コントロール セットによって提供される基本クラスから継承されている独自のコントロールもいくつか導入しています。

たとえば、SharePoint Foundation サイトのサイト ページでは、標準の ASP.NET WebPartManager クラスは使用されません。代わりに、ASP.NET WebPartManager から継承された、SharePoint Foundation に固有の SPWebPartManager クラスが使用されます。

注意

SharePoint Foundation で提供される既定のマスター ページには SPWebPartManager クラスのインスタンスが含まれているので、このコントロールはすべての SharePoint Foundation のコンテンツ ページに自動的に含まれます。

同様に、SharePoint Foundation Web サイトの Web パーツ ページでも、ASP.NET WebPartZone クラスから継承される SharePoint Foundation に固有の WebPartZone クラスを使用します。

SharePoint WebPart クラスからの派生を行う場合

非常に限られていますが、ASP.NET Web パーツ インフラストラクチャにはない SharePoint Foundation 機能をサポートする Web パーツを作成することが必要になる場合もあります。そのような場合は、SharePoint WebPart 基本クラスから継承するクラスを作成できます。このような Web パーツは SharePoint ベースの Web パーツと呼ばれ、SharePoint Foundation サイトでのみ使用できます。

SharePoint WebPart クラスでのみ提供されている機能の一覧を次に示します。

  • ページ間の接続

  • Web パーツ ゾーンの外部にある Web パーツ間の接続

  • クライアント側の接続 (Web Part Page Services Component)

  • コンテンツ データベースへのキャッシングを可能にするデータ キャッシング インフラストラクチャ

WebPart クラスからの派生を検討するもう 1 つの理由は、Web パーツの新しいバージョンを作成することに関連しています。元の Web パーツが WebPart クラスから派生したものであり、その Web パーツのインスタンスを新しいバージョンにアップグレードする場合には、新しいバージョンの Web パーツも SharePoint WebPart クラスから派生する必要があります。

関連項目

参照

Microsoft.SharePoint.WebPartPages

その他の技術情報

Web Parts Overview

Developing Web Parts in SharePoint Foundation

ASP .NET Web パーツ コントロール セットの概要