25.09.2005, 01:10 Uhr

SharePoint als Entwicklungsplattform nutzen

Microsofts Collaboration-Plattform lässt sich mit Hilfe des .NET Frameworks um eigene Funktionalität erweitern. Von Klaus Aschenbrenner *
Mit den Windows SharePoint-Services bietet Microsoft eine solide Web-Plattform, auf der Teams gemeinsam an Tasks und Projekten arbeiten, sowie Dokumente und Informationen untereinander austauschen können. Weniger bekannt ist, dass sich SharePoint auch als Entwicklungsplattform nutzen lässt und mit eigenen Komponenten erweitert werden kann. Microsoft bietet dazu eine ganze Reihe von Ansatzpunkten, die sich mit .Net Managed Code und ASP.NET nutzen lassen: Dazu zählen einerseits das SharePoint-Objektmodell und die Webservice-Schnittstellen, andererseits das Web-Part-Framework sowie die Event-Handler in den Dokumentbibliotheken.

Objektmodell und Webservices

Das Objektmodell von SharePoint bietet eine Vielzahl von Klassen, um mit einer .Net-Sprache auf einen Grossteil der Share-Point-Funktionen zugreifen zu können. So gibt es etwa Klassen für die Verwendung von Alerts, den Zugriff auf Listen und Document Libraries, den Umgang mit den Security-Funktionen oder die Veränderung von Konfigurationseinstellungen. Das Objektmodell lässt sich direkt aus den Web-Parts oder aus Web- und Windows-Anwendungen nutzen, die auf dem selben Server wie SharePoint abgespielt werden. Zusätzlich bietet die SharePoint-Plattform auch eine Reihe von XML-Webservices an, mit denen ein Teil des SharePoint-Objektmodells von Remote-Anwendungen angesprochen werden kann. Dadurch ist es beispielsweise möglich, einen Windows-Forms-Client zu entwickeln, mit dem sich eine SharePoint-Instanz remote administrieren lässt. Eine komplette Referenz zu allen SharePoint-Objekten und Webservices sind im SharePoint SDK zu finden, das unter http://msdn.microsoft.com/sharepointzum Download zur Verfügung steht.

SharePoint-Objektmodell

Im nachfolgenden Beispiel wird gezeigt, wie die Benutzerverwaltung von Share-Point über das Objektmodell angesprochen werden kann. Dazu werden die Objekte SPRole (Rolle), SPUserCollection (Collection mit SPUser-Objekten), SPUser (User) und SPGroup (Gruppe) benötigt, über die auf die gewünschten Benutzerdaten im aktuellen Kontext zugegriffen werden kann. Über das Objekt SPWeb wird zunächst eine Referenz zur gewünschten SharePoint-Site hergestellt. Danach wird ein Benutzer zur Gruppe «Administrators» hinzugefügt, ein weiterer Benutzer entfernt entfernt und schliesslich alle aktuellen Benutzer in einer Liste ausgegeben (Listing 1).
Ein wichtiger Aspekt des SharePoint-Objektmodells ist die Möglichkeit, Listen mit Programmcode zu verändern. Das Verwalten der Listen lässt sich sehr einfach realisieren. Das Beispiel (Listing 2) zeigt, wie eine neue Liste in einem SharePoint Web angelegt werden kann.
Das folgende Beispiel (Listing 3) zeigt den Zugriff auf eine Document Library und wie sich bestehende Dokumente aus einem Programm Aus- und Einchecken lassen:
Eventhandler für Document Libraries

Die Document Libraries der Windows SharePoint-Services verfügen über ein Ereignismodell, über das Entwickler bestimmte Events wie beispielsweise das Ein- und Auschecken oder das Zufügen, Verändern und Löschen von Dokumenten abfangen können. So ist es möglich Event Handler zu schreiben, die beim Eintreffen eines bestimmten Ereignisses eine Aktion wie beispielsweise Kopieren des Dokumentes in eine andere Document Library auslösen. Damit kann eine Dokument-Bibliothek verhältnismässig einfach um eine eigene Workflow-Logik erweitert werden.

Das Web-Part-Framework

Neben dem SharePoint-Objektmodell gibt es auch das Web-Part-Framework mit der die SharePoint-Plattform um neue Funktionen ausbauen lässt. Web Parts sind auf ASP.NET basierende Mini-Anwendungen, die sich wie Bausteine beliebig auf einer SharePoint-Seite platzieren lassen. Web Parts stammen von den ASP.NET Server Controls ab, verfügen aber zusätzlich über die entsprechende Infrastruktur, damit sie sich innerhalb von SharePoint nutzen lassen. Das Web-Part-Framework (Screen 1, Seite 54) wird künftig auch in ASP.NET 2.0 integriert sein, so dass man für SharePoint entwickelte Web Parts auch in gewöhnlichen ASP.NET-Anwendungen nutzen kann.
Das Erstellen von Web Parts ist eine relativ einfache Angelegenheit, da es mit den Web Part Templates (über den Download-Bereich von Microsoft verfügbar) für Visual Studio.NET 2003 eine Vorlage gibt, welche das notwendige Web-Part-Grundgerüst automatisch generiert. Der auf diese Weise erzeugte Code muss nur noch angepasst werden.
Web Parts für SharePoint müssen immer von der Basisklasse Microsoft.SharePoint.WebPartPages.WebPart abstammen. Dadurch bekommt man in der abgeleiteten Klasse die komplette Web-Part-Funktionalität mitgeliefert. Der einzige Schritt, der jetzt noch durchgeführt werden muss, ist die Überschreibung der Methode Render-WebPart, die die HTML-Ausgabe zum Internet Explorer zurückliefert. Das Beispiel (Listing 4) zeigt ein komplett funktionsfähiges Web Part:
Dieses Web Part legt dynamisch zur Ausführungszeit eine Textbox und einen Button an (Screen 2). Sobald der Button gedrückt wird, wird der Titel des aktuellen Fensters auf den Text geändert, den der Benutzer im Textfeld eingegeben hat.
Das Deployment von Web Parts

Damit das WebPart global über ein ganzes SharePoint-Portal verfügbar gemacht werden kann, muss dieses mit einem Strong-Name versehen werden. Dazu muss das Tool sn.exe des .Net Framework SDK verwendet werden. Mit dem Tool werden Public und Private Key generiert, die sich dann in den Build-Prozess einbeziehen lassen. Nach dem Kompilieren muss das Web Part auf dem SharePoint-Server eingerichtet werden. Dazu sind folgende Schritte notwendig:

- Erstellen einer Web-Part-Definition-Datei (.dwp). Das Grundgerüst dazu wird durch Web Part Template bereits vorbereitet.

- Registrieren des Web Parts als sicheres Steuerelement in der Datei web.config des SharePoint-Servers.

- Kopieren des Assembly in den GAC oder das Bin-Verzeichnis des SharePoint-Servers.

- Kopieren der Web-Part-Definition-Datei in das wpcatalog-Folder des SharePoint-Servers.

- Registrieren des Web Parts als sicheres Steuerelement in der Datei web.config des SharePoint Servers.
Alternativ kann für die Installation des Web Parts auch das Tool stsadm.exe, das im C:\Program Files\Common Files\MicrosoftShared\Web Server Extensions\60\bin zu finden ist, verwendet werden. Genauere Informationen zum Web Part Deployment findet man unter http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_SP2003_ta/html/sharepoint_northwindwebparts.asp.
* Klaus Aschenbrenner ist Softwarearchitekt und technischer Berater bei Anecon, Wien.


Das könnte Sie auch interessieren