In meinem letzten Post für den SharePoint Adventskalender 2011 möchte ich ein kleines Schmuckstück in der SharePoint Welt vorstellen. clip_image002Unser amerikanischer SharePoint MVP Kollege Marc D Anderson entwickelt seit August 2009 kontinuierlich an SPServices.

SPServices ist ein jQuery Plugin. Den größten Bestandteil von SPServices stellen die Wrapper für die SharePoint ASMX Webservices dar. Mit diesen Wrappern sind Aufrufe für die meisten in SharePoint 2007 und SharePoint 2010 vorhandenen. Hier ein Auszug der aktuell implementierten Methoden. Die gesamte Liste findet ihr in der Doku auf CodePlex.

clip_image003

Die SharePoint ASMX-WebServices werden auch in SharePoint 2010 noch sehr häufig verwendet. Unter anderem werden die Attachments von ListItems über die GetAttachmentCollection Methode geladen. Das neue Client Object Model (CSOM) stellt nämlich keinerlei Möglichkeit bereit Anhänge von ListItems zu laden.

Ohne SPServices müssten wir nun an dieser Stelle die SOAP Message erstellen, damit der WebService die Attachments des gewünschten ListItems zurückgeben kann. Doch Marc’s SPSerives nimmt genau diese Arbeit ab.

 

Um SPServices in SharePoint nutzen zu können muss zunächst jQuery in SharePoint geladen werden. Christian hat in seinem Eintrag ja bereits beschrieben wie dies gemacht wird. Darüber hinaus muss man nun noch SPServices selbst in SharePoint integrieren. Das Laden von SPService kann auf die gleiche Art erreicht werden wie bei jQuery.

In meinem Beispiel wird die Lösung auf einem OnPremise SharePoint ausgeführt, daher können beide JavaScript Files auch bequem mittels DelegateControl in SharePoint integriert werden.

 

Dazu muss man folgende Dinge durchführen

1. Ein neues SharePoint Projekt erstellt werden

2. Das Projekt muss als Farm Solution markiert werden

3. Die jQuery und SPSerivces Source Files müssen in einem Mapped Folder auf die SharePoint Farm bereitgestellt werden

clip_image004

4. Ein UserControl mit dem Namen ScriptInjector zum SharePoint Projekt hinzufügen

5. Beide JavaScript Files im UserControl laden

clip_image006

6. Ein neues Empty Element mit folgendem Inhalt hinzufügen

clip_image008

 

Mit diesem Setup werden sowohl jQuery als auch SPServices auf allen SharePoint Seiten geladen. Somit kann auf jeder SharePoint Seite nun frei los-gescriptet werden. Open-mouthed smile

 

Bevor ich zum eigentlichen Service Aufruf komme noch der Hinweis dass sämtliche WebService Methoden über die gleiche Syntax aufgerufen werden können. Somit kann man auch noch unbekannte Servicemethoden im Handumdrehen in die eigene Lösung einbauen und sicher verwenden.

SPServices_GetAttachments

Der Beispielaufruf zeigt wie alle Attachments des Elementes mit der ID 3 aus der Kundenliste abgerufen und als Hyperlink zum Result-Div hinzugefügt werden.

Wichtig ist, dass die Antwort des ServiceCalls (immer noch XML) natürlich interpretiert werden muss. Sicherlich gibt es jede Menge Libraries oder Plugins für jQuery um das Finden der e ntsprechenden Bausteine sehr vereinfachen bzw. sehr beschleunigen, dennoch macht es meiner Meinung nach mehr Sinn die Anzahl an externen JavaScript Bibliotheken aufgrund der Ausführungs- und Ladegeschwindigkeit gering zu halten.

Neben den eben gezeigten WebService Wrappern stellen die SPServices noch diverse Methoden bereit um die SharePoint Formulare etwas mehr aufzupeppen.

Aus den vorhandenen Methoden möchte ich die Methode SPAutocomplete vorstellen. Durch SPAutocomplete kann man an jedes InputField (TextBox auf einer New- oder EditForm) einen AutoComplete Mechanismus anhängen. Das Besondere daran ist, das SharePoint selbst als Datenquelle für das AutoComplete fungiert. Analog zu den ServiceWrappern ist auch dieser Aufruf spielend einfach.

 

clip_image010

 

Wie bereits bei den Services musste auch diesmal wieder die WebURL angegeben werden. Damit bei einer Vielzahl von Methodenaufrufen nicht jedesmal die WebURL angegeben werden muss, solltet ihr die SPServices Defaults verwenden. Hier könnt Ihr die WebURL vorbelegen, so dass diese von allen Calls wiederverwendet werden kann.

clip_image011

 

Ein Tipp aus der Praxis

SPServices ist echt ein geniales kleines Framework, welches die Arbeit mit den SharePoint ASMX WebServices viel angenehmer macht. Doch richtig viel Spaß macht meiner Meinung nach erst die Kombination aus SPServices und jTemplates. jTemplates ist ein jQuery Plugin, welches dazu verwendet wird UI Templates zu definieren und diese mit Daten zu füllen. Mit der Kombination wird die clientseitige SharePoint Entwicklung noch mächtiger und schneller. Daher ist auch jTemplates auf jeden Fall einen Blick wert.

 

Happy scripting,

Thorsten

6 Kommentare to “SharePoint Entwicklung mit SPServices”

Erstelle Kommentare

You must be logged in to post a comment.

Hinweis zum Kommentar

Zum Kommentieren der Beiträge (und damit zur Teilnahme am Gewinnspiel) bitte auf die Zahl in der Bubble neben dem Titel des Blogeintrags klicken, dies öffnet das Kommentarformular!

Sponsored by

Subscribe

Über

Der SharePoint Advent

Ein Gemeinschaftsprojekt der deutschsprachigen SharePoint MVP's

Rubriken

Impressum

(c) 2011 SharePointCommunity