構成要素: Web パーツ

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

適用対象: SharePoint Foundation 2010

この記事の内容
Web パーツのオブジェクト モデル
Web パーツの XML
Web パーツの関連分野
Web パーツの詳細情報

Web パーツは、Microsoft SharePoint Foundation サイト ページのコンテキスト内で実行するサーバー側のコントロールです。これを使用すると、ユーザー インターフェイス (UI) をカスタマイズしたり、サイト ページのコンテンツを編集したりできます。Microsoft 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 パーツと、そこで使用される XML の概要について説明し、より詳細な情報とウォークスルーへのリンクを示します。

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 クラスを使用します。

Web パーツの XML

SharePoint Foundation の Web パーツは、XML の複数のセクションを使用して Web サイト内での構成、展開、およびセキュリティ保護を行います。XML の一部はここでの説明の範囲を超えていますが、このトピックの末尾に参照情報へのリンクが示されています。

Web パーツの定義

Web パーツ定義 (.webpart) ファイルは、1 つの Web パーツのプロパティ設定を含む単純な XML ファイルです。Web パーツを Web パーツ ページにインポートするには, .webpart ファイルをアップロードするか、Web パーツを Web パーツ ギャラリーに追加するだけです。アップロード後、Web パーツを Web パーツ ページの領域の 1 つにドラッグすると、その Web パーツが表示されます。インポート後に Web パーツの既定の名前と説明を表示するには、Title プロパティと Description プロパティを含める必要があります。インポート中に他の Web パーツ プロパティを設定する場合は、これらを .webpart ファイルで定義できます。.webpart ファイルの形式は次のとおりです。

<?xml version="1.0" encoding="utf-8" ?> 
  <webParts>
     <webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
       <metaData>
         <type name="TypeName, Version=VersionNumber, Culture=neutral, 
         PublicKeyToken=PublicKeyToken" /> 
         <importErrorMessage>Cannot import this Web 
         Part.</importErrorMessage> 
       </metaData>
       <data>
         <properties>
           <property name="Title" type="string">
              WebPartTitle
           </property>
           <property name="Description" type="string">
              WebPartDescription
           </property>
         </properties>
       </data>
     </webPart>
   </webParts>

SafeControl エントリ

信頼されていないユーザーが ASPX ページ内にサーバー側コードを勝手に追加するのを防ぐために、SharePoint Foundation には SafeControls リストがあります。SafeControls リストは、サイト内の ASPX ページ上で起動しても安全であると指定された、SharePoint サイト固有の承認済みコントロールおよび Web パーツのリストです。このリストは、Web アプリケーション ルートの web.config ファイルにあります。SafeControl エントリは、Web パーツの XML ベースの宣言で、次の形式で表されます。

<SafeControl Assembly="AssemblyNameWithoutDLLExtension, Version=AssemblyVersionNumber, Culture=neutral, PublicKeyToken=PublicKeyToken" Namespace="NamespaceOfYourProject" TypeName="*" Safe="True" />

コード アクセス セキュリティの使用の詳細については、「SharePoint Foundation で Web パーツを展開する」を参照してください。

コード アクセス セキュリティ

コード アクセス セキュリティ (CAS) は、アセンブリによる保護されたシステム リソースや操作へのアクセスを制限する SharePoint Foundation 内のリソース制約モデルです。SharePoint Foundation には、ASP.NET の組み込みセキュリティ ポリシーの最上位に構築された組み込みセキュリティ ポリシーがあります。既定では、SharePoint Foundation ではシステムやリソースへの最小限のアクセスを許可する権限セットが使用され、サーバーや基礎インフラストラクチャが悪意のあるコードから保護されています。

CAS で使用される XML は、このセクションの範囲を超えています。Web パーツのセキュリティ保護の詳細については、「SharePoint Foundation の Web パーツをセキュリティ保護する」を参照してください。

Web パーツの関連分野

構成要素: ソリューション

[文書パーツ] フィーチャー

Web パーツの詳細情報

SharePoint Foundation の Web パーツ

Developing Web Parts in SharePoint Foundation