Sharepoint-client-object-model
この章では、クライアントオブジェクトモデルまたはCSOMを見ていきます。 これは、SharePoint 2010に追加されたリモートアプリケーションを構築するための2つのAPIの1つでした。
クライアントオブジェクトモデルの設計目標の1つは、サーバーオブジェクトモデルを可能な限り模倣することでした。そのため、サーバー側での開発に慣れている開発者にとっては、学習曲線が短くなります。
クライアントオブジェクトモデルの中心は、 ._ vti_bin 仮想ディレクトリにあるClient.svcと呼ばれるWebサービスです。 Client.svcと直接通信することは想定されていませんが、使用できる3つのプロキシまたはエントリポイントが与えられます。 彼らは-
- .NETマネージコード。
- JavaScriptです。
- JavaScriptです。
コードはこれらのプロキシと通信し、これらのプロキシは最終的にWebサービスと通信します。
これはリモートAPIであり、Webサービス呼び出しを介してSharePointとの通信が行われるため、クライアントオブジェクトモデルは、情報に対するコマンドとリクエストを一括処理できるように設計されています。
.NETマネージコード
NET Manage Implementationの2つのコアアセンブリは次のとおりです-.
- Microsoft.SharePoint.Client.dll* および* Microsoft.SharePoint.Client.Runtime.dll。*
Silverlightコード
Silverlight実装のアセンブリは、 TEMPLATE \ LAYOUTS \ ClientBin にあります。 アセンブリ名も Microsoft.SharePoint.Client で始まります。 1つを除くすべてのアセンブリの場合、アセンブリ名はSilverlightで終わります。
Silverlight実装の2つのコアアセンブリは次のとおりです-
- Microsoft.SharePoint.Client.Silverlight.dll
- Microsoft.SharePoint.Client.Silverlight.Runtime.dll
JavaScript
クライアントオブジェクトモデルのJavaScript実装は、SharePointシステムルートの下のTEMPLATE \ LAYOUTSフォルダーにあります。 JavaScriptライブラリの名前はすべてSPで始まります。 3つのコアライブラリは、 SP.js、Sp.Runtime.js 、および SP.Core.js です。
クライアントオブジェクトモデルは、SharePoint 2013で拡張されています。
.NETを使用してLoadでリソースを取得する
Windowsフォームアプリケーションを使用して、クライアントオブジェクトモデルのマネージ実装を使用する簡単な例を見てみましょう。 したがって、最初に新しいプロジェクトを作成する必要があります。
ステップ1 *-中央のペインで[ *Windows Forms Application ]を選択し、[名前]フィールドに名前を入力します。 OKをクリックしてください。
- ステップ2 *-プロジェクトが作成されたら、次のように1つのリストボックスと1つのボタンを追加します。 クライアントオブジェクトモデルを使用するには、いくつかのアセンブリ参照を追加する必要があります。 参照を右クリックして、参照の追加を選択します。
- ステップ3 *-左ペインの*アセンブリ*で*拡張機能*を選択します。
クライアントオブジェクトモデルのマネージ実装の2つのコアアセンブリは、 Microsoft.SharePoint.Client および Microsoft.SharePoint.Client.Runtime です。 これら2つのオプションを確認し、[OK]をクリックします。
Microsoft SharePoint Client Runtime
次に、[ロード]ボタンをダブルクリックして、以下のイベントハンドラーを追加します。
using Microsoft.SharePoint.Client;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ClientObjectModel {
public partial class Form1 : Microsoft.SharePoint.Client.Form {
public Form1() {
InitializeComponent();
}
private void loadBtn_Click(object sender, EventArgs e) {
using (var context = new ClientContext("http://waqasserver/sites/demo")) {
var web = context.Web;
context.Load(web);
context.Load(web.Lists);
context.ExecuteQuery();
ResultListBox.Items.Add(web.Title);
ResultListBox.Items.Add(web.Lists.Count);
}
}
}
}
クライアントオブジェクトモデルへのエントリポイントは、クライアントコンテキストです。 SPContext オブジェクトのクライアントバージョンのリモートです。 これは使い捨てタイプなので、 using ステートメントでラップされます。 ClientContext でSharePointサイトのURLを渡します。
これで、コンテキストができました。 var web = context.web となるように、現在のサイトを表すオブジェクトが必要です。
注-このオブジェクトは空のシェルであるため、context.loadを使用してWebオブジェクトをロードし、Webオブジェクトを渡す必要があることに注意してください。 これは、次のバッチ取得でWebオブジェクトプロパティを設定することを示しています。
次に、 context.ExecuteQuery を呼び出す必要があり、実際にバッチ取得を開始します。 サーバーからプロパティ値を取得し、リストボックスに追加します。
上記のコードをコンパイルして実行すると、次の出力が表示されます-
[ロード]ボタンをクリックすると、リストのタイトルとカウントの両方が表示されます。
これにより、プロジェクトのセットアップでクライアントオブジェクトモデルを使用して、loadメソッドを使用してロードリソースを確認できます。