マネージ オブジェクト モデルと ECMAScript オブジェクト モデルの相違点

最終更新日: 2010年7月15日

適用対象: SharePoint Foundation 2010

SharePoint Online で使用可能

次に説明する ECMAScript (JavaScript、JScript) とマネージ クライアント オブジェクト モデル間の重要な相違点に注意するようにしてください。

  • ClientContext() コンストラクター (JavaScript: ClientContext(serverRelativeUrl)) と同様に、メソッド署名が異なる場合があります。JavaScript では、このコンストラクターはサーバー相対 URL を取りますが、このコンストラクターのマネージ バージョンは、完全 URL または Uri のどちらかを取ります。

  • 2 つのオブジェクト モデルでは、異なるデータ値型が使用されます。JavaScript オブジェクト モデルには, .NET Framework マネージ オブジェクト モデルのすべてのデータ値型に対応するデータ値型が含まれているわけではありません。JavaScript では、StringCollection が string[] と見なされます。一方で、JavaScript には .NET Framework にはない値 (NaN など) または負および正の無限大が含まれます。

  • JavaScript オブジェクト モデルではフォーム認証を行うことができますが、認証メカニズムを指定して、サーバーに接続することができません。マネージ クライアント オブジェクト モデルおよびフォーム認証については、「マネージ クライアント オブジェクト モデルにおける認証」を参照してください。

  • アイテムを作成して、既存のコレクションに追加した場合、クエリが未解決の間はそのコレクションを使用して更新を行うことができません。この問題は、コレクションへのアイテムの追加に関連しています。それ以外の場合は、複数のクライアントが、コレクション内の既存のアイテムに対して同時に読み取りおよび書き込みを行うことができます。

  • ページにフォーム ダイジェスト コントロール (<SharePoint:FormDigest runat="server"/> など) が含まれていない場合は、一般的なセキュリティ管理の一環として、そのページでは JavaScript オブジェクト モデルを使用して Microsoft SharePoint Foundation 2010 データを使用できません。

  • 一般的には、対象範囲内で変数を共有することはできません。この理由から、try/catch/finally ステートメントの一般的なコーディング パターンを使用できません。

  • ロールの割り当てを作成するときに使用する RoleDefinitionBindingCollection オブジェクトにはオブジェクト ID がありません。したがって、ロールの割り当てを作成してから、新しい RoleDefinitionBindingCollection オブジェクトを作成して使用しようとすると、エラーが返されます。

  • 大文字と小文字の比較機能の一部が、クライアントとサーバーでは異なる動作をします。サーバー側では Web サイトのロケールを使用して比較を行いますが、クライアントでは、頻繁にラウンド トリップが行われないように不変のカルチャしか使用できません。サーバーが Web サイトのロケールを使用している場合、SharePoint Foundation 2010 では大文字と小文字の比較はサポートされません。

  • 非同期ポストバックの制限のため、ページのモードによっては (たとえば、Wiki ページが編集モードの場合)、インライン スクリプトが呼び出されません。この場合は、ScriptManager コントロールとその RegisterStartupScript() メソッドを使用して起動スクリプト ブロックを登録し、コードを実行します。インライン スクリプトは使用しません。

関連項目

概念

データ取得の概要

マネージ クライアント オブジェクト モデルにおける認証

クライアント オブジェクト モデルの配布と展開

一般的なプログラミング作業

その他の技術情報

クライアント クラス ライブラリ

ECMAScript クラス ライブラリ

SharePoint Foundation 2010 のマネージ クライアント オブジェクト モデルの使用

Client Object Model Resource Center (英語)