- Öffne Visual Studio 2010
- Neues Projekt erstellen (Windows Forms Application, C#)
- Build Output einstellen: AnyCPU oder x64
Schritt 2 – Client Object Model referenzieren
- Rechtsklick auf References und Add Reference auswählen
- Unter Browse ins 14-Verzeichnis navigieren:
C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions14ISAPI - und die folgenden Dateien auswählen:
– Microsoft.SharePoint.Client.dll
– Microsoft.SharePoint.Client.Runtime.dll
- Nun natürlich noch das folgende using-Statement hinzufügen:using SP = Microsoft.SharePoint.Client;
Das Ergebnis sollte wie folgt aussehen:
Schritt 3 – Anwendung mit Steuerelementen ausstatten
In meiner Beispielanwendung habe ich die folgenden Steuerelemente verwendet:
- Textbox (zur Eingabe der URL, oben, Name: tb_Url)
- Button (Start der Abfrage, oben, Name: btn_Go)
- PictureBox (Anzeige SharePointJungs-Logo, oben, Name: pictureBox1)
- TreeView (Anzeige der SharePoint-Listen, mitte, Name: tv_WebContent)
- Textbox (Anzeige der Informationen, unten, Name: tb_Info)
Schritt 4 – Logik 🙂
Doppelklick auf den Button und den folgenden Quellcode hinzufügen:
private void btn_Go_Click(object sender, EventArgs e)
{
tv_WebContent.Nodes.Clear();
tb_Info.Clear();
using (SP.ClientContext clientctx = new SP.ClientContext(tb_Url.Text.ToString()))
{
var web = clientctx.Web;
clientctx.Load(web);
clientctx.Load(web.Lists);
clientctx.ExecuteQuery();
TreeNode node = tv_WebContent.Nodes.Add(web.Title);
node.ToolTipText = web.Description;
foreach (SP.List list in web.Lists)
{
//lbLists.Items.Add(list.Title);
TreeNode subnode = node.Nodes.Add(list.Title);
subnode.ToolTipText = list.Description;
}
tv_WebContent.ExpandAll();
}
}
Doppelklick auf das TreeView-Steuerelement und den folgenden Code einfügen:
private void tv_WebContent_AfterSelect(object sender, TreeViewEventArgs e)
{
if (tv_WebContent.SelectedNode.Parent != null)
{
using (SP.ClientContext clientctx = new SP.ClientContext(tb_Url.Text.ToString()))
{
var list = clientctx.Web.Lists.GetByTitle(tv_WebContent.SelectedNode.Text.ToString());
clientctx.Load(list);
clientctx.ExecuteQuery();
string infos =
string.Format(“Title: {0}ItemCount: {1}IsHidden: {2}GUID: {3}Attachements: {4}”,
list.Title + Environment.NewLine,
list.ItemCount + Environment.NewLine,
list.Hidden.ToString() + Environment.NewLine,
list.Id.ToString() + Environment.NewLine,
list.EnableAttachments);
tb_Info.Text = infos;
}
}
else
{
using (SP.ClientContext clientctx = new SP.ClientContext(tb_Url.Text.ToString()))
{
var web = clientctx.Web;
clientctx.Load(web);
clientctx.Load(web.Lists);
clientctx.Load(web.Webs);
clientctx.ExecuteQuery();
string infos =
string.Format(“Title: {0}SubWebs: {1}ListCount: {2}GUID: {3}LCID: {4}”,
web.Title + Environment.NewLine,
web.Webs.Count.ToString() + Environment.NewLine,
web.Lists.Count.ToString() + Environment.NewLine,
web.Id.ToString() + Environment.NewLine,
web.Language.ToString());
tb_Info.Text = infos;
}
}
}
Schritt 5 – Ergebnis begutachten
In die Textbox kann nun die URL des SharePoint 2010-Webs eingetragen werden. Mit dem Klick auf Go! wird die Abfrage gestartet.
Ein Klick auf den Root-Knoten zeigt Informationen zur Website an:
Informationen zur Liste werden wie folgt angezeigt:
Ich hoffe, ich konnte euch die Entwicklung einer clientseitigen Anwendung etwas näher bringen.
Die fertige Solution kann hier herunter geladen werden:
Download Beispielanwendung – Client Object Model