Microsoft SharePoint Foundation のコンテンツ階層

最終更新日: 2010年3月13日

適用対象: SharePoint Foundation 2010

Microsoft SharePoint Foundation オブジェクト モデルは、3 つの階層に分けて効果的に使用できます。このトピックでは、リスト アイテムなど、データのパブリッシュ可能アイテムを表すクラスを含むコンテンツ階層について説明します。リスト、コンテンツ データベース、Web サイト、Web アプリケーションと呼ばれるサイト コレクションのグループなど、データの入れ子のコンテナーを表すクラスもあります。

重要重要

階層内のクラスによって表されるエンティティについては、「[バックグラウンド] Microsoft SharePoint Foundation のコンテンツ エンティティ」を参照してください。

物理オブジェクト階層は、サーバーやファイルなどの物理エンティティを表す各種クラス、およびそれらのエンティティを収めた、ファームやフォルダなどの各種コンテナで構成されています。この物理オブジェクト階層については、「Microsoft SharePoint Foundation の物理オブジェクト階層」で説明しています。

3 番目のサービス階層には、サービスやサービスのインスタンスを表すクラスが含まれます。この階層については、「Microsoft SharePoint Foundation のサービス階層」で説明しています。

注意

一部のクラスは簡単に分類できず、複数の階層に属すると見なされるという意味で、これらの階層は部分的に重なっています。

コンテンツ階層

コンテンツ階層の 7 つの主要クラスを図 1 に示します。

図 1. コンテンツ階層の主要オブジェクト

コンテンツ階層の主要オブジェクト

図 1 の各オブジェクトの種類には、その下にある種類のオブジェクトも含まれます。このトピックでは、SPListSPListItem、および SPField クラスについては説明しません。

SPWeb

SPWeb オブジェクトは SharePoint Foundation Web サイトを表します。SPWeb クラスの特性は、次のとおりです。

  • SPWeb オブジェクトは、別の SPWeb オブジェクトまたは SPSite オブジェクトの子にすることができます。SPSite オブジェクトの子の場合、このオブジェクトは、サイト コレクションのトップレベル Web サイトです。

  • SPWeb オブジェクトには、他の SPWeb オブジェクトのコレクションを返す Webs プロパティがあります。具体的には、すぐ下の子サブサイトが返されます。

  • クラスには、Web サイトをプログラムで管理およびカスタマイズするための豊富なメンバがあります。

Web サイトの階層には、常にトップレベル Web サイトが 1 つあります。このサイトは、SPSite オブジェクトの子です。

注意

SharePoint Foundation で "Web サイト" (または "サイト") と呼ばれているものは、SharePoint Foundation の元のバージョンである Microsoft SharePoint Team Services では "Web" と呼ばれていました。したがって、これを表すクラスは SPWeb と呼ばれます。同様に、サイト コレクションは、単に "サイト" と呼ばれていました。このため、サイト コレクションを表すクラスには SPSite という名前が付けられています。

SPSite

SPSite オブジェクトは、Web サイトのコレクションを表しますが、SPSite クラスは、ICollection を実装するクラスという意味では、コレクションではありません (SPSiteCollection クラスは、後者のインターフェイスを実装します。このクラスは、SPSite オブジェクトのコレクションを表します)。

SPSite クラスの特性は、次のとおりです。

  • SPSite オブジェクトは、SPContentDatabase オブジェクトのコンテンツのサブセットを表します。

  • SPSite クラスには、子のトップレベル Web サイトを保持するRootWeb プロパティがあります (トップレベル Web サイトは、SharePoint Foundation、Microsoft SharePoint Team Services の最初のバージョンでは "ルート Web" と呼ばれていました)。そして、トップレベル Web サイトを表す SPWeb オブジェクトには、そのすぐ下にあるすべての子サブサイトを保持する Webs プロパティがあります。(サブサイトのサブサイトは含まれません (AllWebs プロパティは、すべてのサブサイトとトップレベル Web サイトを返します)。

  • SPSite には、管理機能の開発に使用できる多数のメンバがあります。いくつかのより重要なメンバは、以下の管理に役立ちます。

    • Web サイトの URL の最大長

    • RSS フィード

    • 監査

    • 停止している Web サイト

    • フィーチャー

    • サイト コレクションの所有権

    • サイト コレクションのサイズ クォータ

    • サイト利用状況データ

    • サイト コレクションのワークフロー

    • テンプレートと Web パーツ ギャラリー

    • セルフサービス サイト作成

  • SPSite クラスの約半分のメソッドは、なんらかの種類の情報を返す Get* メソッドで、そのプロパティのほとんどは読み取り専用です。

SPContentDatabase

SPContentDatabase オブジェクトは、すべてのデータ (リスト、リスト アイテム、ブログ記事とコメント、Wiki ページ、ドキュメント ライブラリ内のドキュメント) と、データベースに属するサイト コレクションを構成するほとんどのページ ファイルが格納されている SQL Server データベースを表します。

以下に SPContentDatabase クラスの特性をいくつか示します。

  • SPContentDatabase オブジェクトは SPWebApplication オブジェクトの子です。Web アプリケーションのコンテンツ データベースのコレクションは、Web アプリケーションの ContentDatabases プロパティで参照されています。

  • SPContentDatabase クラスには、すべての子 SPSite オブジェクトを保持する Sites プロパティがあります。

  • SPContentDatabaseSPPersistedObject を継承します。つまり、クラスをインスタンス化するオブジェクトは構成データベースに保存されます。

  • SPContentDatabase には、管理機能の開発に使用できる数多くのメンバがあります。いくつかのより重要なメンバは、以下の管理に役立ちます。

    • データベースのバックアップと復元

    • データベースのアップグレード

    • データベースの移行 (移動)

    • データベースの修復

    • データベースの接続文字列およびログオン ユーザー名とパスワード

    • サイト コレクション数の制限

  • SPContentDatabase のほとんどのプロパティは読み取り専用です。

SPWebApplication

SPWebApplication オブジェクトは、SharePoint Foundation のコンテンツ発行 Web アプリケーションを表します。1 つ以上のサイト コレクションのデータを保持する 1 つ以上のコンテンツ データベースが含まれます。このような各 Web アプリケーションは、IIS Web サイトによって提供され、通常、IIS に独自のアプリケーション プールを持っています。

SPWebApplicationクラスの特性をいくつか示します。

  • SPWebApplication オブジェクトは SPWebService オブジェクトの子です (SPWebService クラスの詳細については、「Microsoft SharePoint Foundation のサービス階層」を参照してください)。

  • SPWebApplication クラスには、すべての子 ContentDatabases オブジェクトを保持する SPContentDatabase プロパティがあります (始めに 1 つ以上のコンテンツ データベースへの参照を取得しなくても、属するすべてのコンテンツ データベースのあらゆるサイト コレクションへの参照を取得できる便利な Sites プロパティもあります)。

  • サーバーの全体管理アプリケーションと同じように、管理者は、SPWebApplication クラスを使用して、IIS マネージャを開かずに IIS プロパティにアクセスできます。たとえば、IisSettings プロパティや、SharePoint Foundation Web アプリケーションが割り当てられている IIS アプリケーション プールのプロパティにプログラムからアクセスできるようにする ApplicationPool プロパティがあります。

  • SPWebApplicationSPPersistedObject を継承します。つまり、クラスのオブジェクトは構成データベースに保存されます (コードでのこれらのオブジェクトの使用方法については、「概要 : オブジェクト モデルを使用して管理をカスタマイズする」と「[ウォークスルー] コンテンツ サービス オブジェクトを作成する」を参照してください)。

  • SPWebApplication には、管理機能の開発に使用できる数多くのメンバがあります。いくつかのより重要なメンバは、以下の管理に役立ちます。

    • セキュリティ ポリシー

    • 通知

    • ドキュメントの変換

    • Web アプリケーションのバックアップと復元

    • Web アプリケーションに対する変更のログ

    • 電子メールの送信

    • 外部のワークフローへの参加

    • Windows Live MetaWeblog API の使用

    • ごみ箱の使用

    • 使用されていないサイト コレクション

    • Web.config ファイルの変更

  • Web アプリケーションがデータを消費する必要がある場合、またはサービス アプリケーションに用意されている機能を処理する必要がある場合は、SPServiceApplicationProxy を使用します。

  • SPWebApplication クラスは、SPHttpApplication クラスと密接に関連しています。後者のクラスのオブジェクトは、HTTP 要求ハンドラです。SharePoint Foundation Web アプリケーションが割り当てられているプロセス (IIS アプリケーション プール) には、Web アプリケーションに送信されるページ要求を処理する 1 つ以上の SPHttpApplication オブジェクトがあります。

関連項目

参照

SPWebApplication

SPDatabase

SPSite

概念

サーバーとサイトのアーキテクチャ : オブジェクト モデルの概要

リストのオブジェクトとコレクションを操作する

概要 : オブジェクト モデルを使用して管理をカスタマイズする

コード例 : 管理オブジェクト モデルを使用する

Microsoft SharePoint Foundation のコンテンツ階層

[バックグラウンド] Microsoft SharePoint Foundation のコンテンツ エンティティ

Microsoft SharePoint Foundation の物理オブジェクト階層

[バックグラウンド] Microsoft SharePoint Foundation の物理オブジェクト

Microsoft SharePoint Foundation のサービス階層

バックグラウンド: Microsoft SharePoint Foundation のサービス エンティティ

その他の技術情報

Microsoft SharePoint Foundation の管理オブジェクト モデル

SharePoint Foundation の管理