外部リストとともに SharePoint リスト オブジェクト モデルと SharePoint クライアント オブジェクト モデルを使用する
最終更新日: 2010年4月15日
適用対象: SharePoint Server 2010
この記事の内容
SharePoint リスト オブジェクト モデルおよびクライアント オブジェクト モデルを使用する利点
SharePoint リスト オブジェクト モデルおよびクライアント オブジェクト モデルを使用する上での制限
リスト オブジェクト モデルを外部リストと併用する場合の考慮事項
以下のオブジェクト モデルを使用して、Microsoft Business Connectivity Services (BCS) で公開される外部データをプロプラムによって操作できます。
BDC オブジェクト モデル。サーバーとクライアントの両方で使用できます。
Microsoft SharePoint 2010 オブジェクト モデル。Microsoft.SharePoint 名前空間内のサーバー側オブジェクト モデルにある SPList クラス、および Microsoft.SharePoint.Client と Microsoft.SharePoint.Client.Silverlight 名前空間内のクライアント側オブジェクトモデルにある、対応する List クラスで構成されます。
表 1 に、利用可能なオブジェクト モデルを要約します。
表 1. 利用可能な SharePoint サーバーとクライアントのオブジェクト モデル
オブジェクト モデル |
サーバー |
クライアント |
説明 |
---|---|---|---|
BDC オブジェクト モデル |
はい |
はい |
Business Connectivity Services で提供される名前空間のライブラリを提供します。SharePoint Foundation 2010、SharePoint Server 2010、および Office Professional Plus 2010 に存在します。 BDC オブジェクト モデルは、外部コンテンツ タイプを使用して、外部システム データに対する作成、読み取り、更新、および削除 (CRUD) の各操作をサーバーとクライアントの両方から対称的に実行します。 |
SPList クラス (サーバー側オブジェクト モデル) |
はい |
いいえ |
SharePoint Web サイト上のリストを表します (Microsoft.SharePoint.dll)。 SPList クラスは、BDC オブジェクト モデルに基づいて作成されており、外部リストに対する CRUD 操作をサーバーから実行します。 |
クライアント側オブジェクト モデル |
いいえ |
はい |
Microsoft .NET Framework マネージ アプリケーション、Microsoft Silverlight アプリケーション、およびブラウザーで実行される ECMAScript (JavaScript、JScript) から SharePoint サイトと対話するための SharePoint Foundation 2010 クライアント API を表します。この API は、リモート コンピューターから SharePoint データと対話する方法を提供します。この対話は、クライアント コンテキスト オブジェクトを取得し、サイトコレクション以下のレベルでクライアント オブジェクトにアクセスすることで行われます (Microsoft.SharePoint.Client.dll および Microsoft.SharePoint.Client.Silverlight.dll)。 クライアント側オブジェクト モデルは、SPList クラスに基づいて作成されており、SharePoint Web サービスを使用して CRUD 操作をクライアントから実行します。 |
次のアーキテクチャ図は、サーバーおよびクライアント上に存在するオブジェクト モデル、オブジェクト モデルが互いに対話する方法と他の Business Connectivity Services コンポーネントと対話する方法、およびオブジェクト モデルが、Business Connectivity Services を使用して構築されたソリューションと対話する方法を示しています。
図 1. サーバーおよびクライアント上のオブジェクト モデル
クライアントまたはサーバーで、プログラムで操作するスタック エントリ ポイントを選択できます。ただし、SPList クラスには制限があります。この制限に直面した場合、BDC オブジェクト モデルで、実際の外部コンテンツ タイプを操作する、より低いレベルの API を使用できます。
SharePoint リスト オブジェクト モデルおよびクライアント オブジェクト モデルを使用する利点
SharePoint リスト オブジェクト モデルおよびクライアント オブジェクト モデルを使用する利点を次に示します。
簡単で使い慣れたオブジェクト モデル。 SharePoint リスト オブジェクト モデル (SPList クラス) は、操作が簡単で、SharePoint 開発者にとって使い慣れたオブジェクト モデルです。
**可用性。**BDC オブジェクト モデルは、Office Professional Plus 2010 がインストールされたクライアントでのみ使用できます。一方、SharePoint オブジェクト モデルは、サーバーとクライアントの両方で使用できます。
部分的に信頼された環境で実行される。 SharePoint オブジェクト モデルは、部分的に信頼された環境で実行できます。BDC オブジェクト モデルはそのような環境で実行できません。
SharePoint リスト オブジェクト モデルおよびクライアント オブジェクト モデルを使用する上での制限
SharePoint リスト オブジェクト モデルおよびクライアント オブジェクト モデルを使用する上での制限を次に示します。
外部リストが必要。 SharePoint リスト オブジェクト モデルおよびクライアント オブジェクト モデルでは、外部リストに対する CRUD 操作がサーバーから実行されます。したがって、これらのモデルでは、サーバーに外部リストを作成する必要があります。BDC オブジェクト モデルにこの要件はありません。このモデルでは、CRUD 操作が外部コンテンツ タイプに対して直接実行されるためです。
サポートされる単純型に対してのみ機能する。 SharePoint リスト オブジェクト モデルおよびクライアント オブジェクト モデルは、外部リストに単純なフィールドが含まれる場合にのみ機能します。設計上、外部リストはデータを行ベースでフラットに表現します。SharePoint リスト タイプのシステムでサポートされない複合型と単純型は省略されます。特に、以下の型のフィールドは使用できません。
複合型 たとえば、"Customer" 構造の一部として含まれる "CustomerAddress" には、"Street"、"City"、"State"、"PostalCode" を定義する子要素が含まれます。
ユーザー設定の型 たとえば、"Applicant" 構造の一部として含まれる "Resume" フィールドは、子要素を含まない場合がありますが、サポートされる SharePoint リストのフィールド型のいずれかを使用してこのフィールドを表すことはできません。
サポートされない .NET 型 System.GUID、System.Object、System.URI、System.UInt64、System.Int64 などの .NET Framework 型は、外部リストでサポートされません。したがって、外部リストのいずれかのフィールドがこのような .NET Framework 型の場合、そのフィールドは省略されます。
BDC オブジェクト モデルにこのような要件はありません。ここに示された、複雑なフィールドのすべての型を操作できます。
BDC の高度な機能がサポートされない。 SharePoint リスト オブジェクト モデルおよびクライアント オブジェクト モデルでは、BDC がサポートする以下の高度な機能がサポートされません。
ページング 外部リストでは、ページング、またはデータのチャンクが提供されません。
一括操作 外部リストでは、25 個のインスタンスを同時に読み取るなどの一括操作を実行できません。
ストリーミング 外部システムからのバイナリ ラージ オブジェクト (BLOB) など、ストリーミング データに対するサポートがありません。
複雑な関連付け 外部リストでは、関連付けがサポートされません。
リスト オブジェクト モデルを外部リストと併用する場合の考慮事項
BdcIdentity は、特定のリスト アイテムの識別子を表す SharePoint リスト オブジェクトのフィールドです。これは、特定のリスト アイテムを一意に識別する唯一の決定論的方法です。これを取得するには、SPList オブジェクトの Fields コレクションを使用します。いくつかの例については、「コード スニペット: サーバー上の外部リストとともに SharePoint リスト オブジェクト モデルを使用する」および「コード スニペット: 外部リストとともに SharePoint クライアント オブジェクト モデルを使用する」を参照してください。
外部リスト アイテムの ItemID は常にゼロです。代わりに、BdcIdentity を使用する必要があります。
SharePoint クライアント オブジェクト モデルを外部リストと併用する場合、他のいくつかの点に注意する必要があります。詳細については、「コード スニペット: クライアントの外部リストからアイテム データを取得する」を参照してください。
関連項目
概念
BDC オブジェクト モデルを使用するためのコンテキストを設定する
その他の技術情報
コード スニペット: サーバー上の外部リストとともに SharePoint リスト オブジェクト モデルを使用する