Kolumne: SharePoint ganz praktisch

Übersicht über die Erweiterungsmöglichkeiten von SharePoint
Kommentare

Mittlerweile hat der SharePoint-Server schon in vielen Unternehmen Einzug gehalten. In vielen Fällen reichen die Bordmittel für die Erleichterung alltäglicher Aufgaben aus. Geht es aber darum, spezielle Funktionen oder Geschäftsprozesse in SharePoint abbilden zu müssen, sind in der Regel programmatische Anpassungen notwendig.

Obwohl das Produkt SharePoint schon seit 2001 existiert, hat es sich erst in den letzten Jahren vermehrt in Unternehmen verbreitet. Diese späte Verbreitung ist auch nicht verwunderlich, da die anfänglichen Versionen recht umständlich zu bedienen und anzupassen waren. Version 2007 war nach Meinung des Autors die erste, die schon recht gut als Entwicklungsplattform für eigene Anwendungen verwendet werden konnte. Um einen Einstieg in die SharePoint-Entwicklung zu erhalten, stellt die erste Ausgabe der neuen SharePoint-Kolumne die typischen und häufigsten benötigten Erweiterungsmöglichkeiten vor. In den folgenden Teilen der neuen Kolumne „SharePoint ganz praktisch“ werden die vorgestellten Anpassungsmöglichkeiten dann jeweils anhand von Beispielen erläutert.

Menüband, Gestaltungsvorlagen, Seitenvorlagen

SharePoint 2010 führte eine überarbeitete Navigationsstruktur ein und löste damit viele Probleme der Vorgängerversionen. Kernbestandteil der neuen Navigation ist das Menüband, eher unter der Bezeichnung Ribbon bekannt. Es verhält sich kontextbezogen und blendet automatisch verfügbare Aktionen je nach Kontext ein und aus. Eigene Funktionen können leicht über das Ribbon verfügbar gemacht werden. Das gesamte Look and Feel des Portals kann über eigene Gestaltungsvorlagen (MasterPages – vgl. auch ASP.NET-MasterPage-Konzept) realisiert werden. Leichte Anpassungen am Standardlayout sind per CSS und/oder JavaScript durchzuführen. Die Layoutstruktur einzelner Inhaltsseiten kann über eigene Seitenvorlagen (Page Layouts) gesteuert werden.

Inhaltsstruktur

Eigene Inhalte sollten immer in einer strukturierten Form in SharePoint eingebracht werden. Um dies zu erreichen, können eigene Felder (Fields) und Inhaltstypen (Content Types) definiert werden. Dieses Vorgehen ist im Groben vergleichbar mit der Definition einer SQL-Tabelle und deren Spalten. Wie sich dann eigene Felder an der Oberfläche darstellen, kann über Feldsteuerelemente definiert werden. Basierend auf Inhaltstypen können eigene Listen oder Bibliotheken definiert werden.

Web Parts

Web Parts gehören zu den wichtigsten Eigenschaften von SharePoint. Dabei sind sie keine Besonderheit von SharePoint, sondern auch innerhalb klassischer ASP.NET-Anwendungen verwendbar. Web Parts stellen kleine funktionale Bausteine dar, die einer Web-Part-fähigen Seite hinzugefügt werden können. Auf diesem Weg ist es sehr einfach möglich, zusätzliche Funktionalitäten in SharePoint einzubinden.

App-Modell

Mit SharePoint 2013 wurde ein weiteres Lösungsmodell eingeführt. Dabei handelt es sich um das App-Modell. Apps sind in etwa vergleichbar mit Web Parts, jedoch unterscheidet sich das Implementierungsmodell erheblich. Das wichtigste Unterscheidungsmerkmal liegt in der Art und Weise, wie bzw. wo Apps ausgeführt werden. Apps werden vollständig isoliert von SharePoint ausgeführt und können sich somit nicht negativ – im Falle eines unbehandelten Fehlers – auf die SharePoint-Farm auswirken. Durch die verteilte Ausführung wird die SharePoint-Farm außerdem serverseitig entlastet.

Ereignisempfänger

Schon die ersten SharePoint-Versionen ermöglichten die Umsetzung eines Ereignisempfängers, seit der Version 2007 ist dies auch relativ problemlos möglich. Wie der Name schon andeutet, kann man hiermit auf Ereignisse reagieren. Es gibt viele verschiedene Arten von Ereignisempfängern, die detailliert in den nachfolgenden Ausgaben erläutert werden.

Anwendungsseiten

Mittels Anwendungsseiten können vollständige Anwendungen in SharePoint umgesetzt werden. Anwendungsseiten kommen z. B. oft zum Einsatz, wenn eigene Zeitgeber und Aufgaben (Timer-Jobs) in SharePoint umgesetzt werden müssen. In der Regel wird dafür eine Administrationsseite benötigt, die dann als Anwendungsseite realisiert werden kann. Auch im Bereich der Workflows kommen unter SharePoint 2013 wieder vermehrt Anwendungsseiten zum Einsatz.

Timer-Jobs

SharePoint führt im Hintergrund viele unterschiedliche Aufgaben zeitgesteuert aus, etwa die Bereinigung von Aufgabenlisten. Das Timer-Jobs-Framework kann ebenfalls für eigene zeitgesteuerte Aufgaben verwendet werden. Sollen z. B. Daten aus einem externen System in SharePoint übernommen werden, kann die Ausführung dazu über einen eigenen Zeitgeber koordiniert werden.

PowerShell und Stsadm

Administrationsaufgaben können seit SharePoint 2010 mit PowerShell-Skripten realisiert werden. Bis zur Version 2007 war dafür das Stsadm-Kommando die erste Wahl. Für beide Varianten können eigene Erweiterungen bereitgestellt werden. Somit können oft wiederkehrende Aufgaben als eigene Kommandos verfügbar gemacht werden.

Business-Connectivity-Service-Modell

Der Business Connectivity Service (BCS) ermöglicht die einfache Einbindung externer Datenquellen in SharePoint. Eingebundene Daten werden dann als externe Inhaltstypen (External Content Types) in SharePoint verfügbar gemacht. Einfache Einbindungen erfolgen mittels SharePoint-Designer. Für komplexere Abläufe während des Datenzugriffs empfiehlt sich die Definition des Datenmodells in Visual Studio. Innerhalb eines programmatisch realisierten Modells kann dann eigene Logik hinzugefügt werden, z. B. eine zusätzliche Zugriffsprotokollierung.

Site Definition

SharePoint selbst enthält einige vorgefertigte Seitendefinitionen. Dazu zählen die Zusammenarbeitswebsite oder die Veröffentlichungswebsite. Die Definition eigener Seitendefinitionen ist natürlich auch möglich. Über diesen Weg können – für eigene SharePoint-Lösungen – die benötigten Artefakte wie Listen und Web Parts auf der Seite vorkonfiguriert werden. Erstellt ein Benutzer dann basierend auf der neuen Seitendefinition eine Site, sind die benötigten Module dort bereits vorhanden. Eine manuelle oder vollständig programmatische Erstellung wird somit überflüssig.

Dienstanwendungen

SharePoint 2010 hat eine neue Dienstarchitektur eingeführt und damit den alten Shared Service Provider (SSP) abgelöst. Die neue Dienstarchitektur ist sehr flexibel, skalierbar und ermöglicht eine granulare Steuerung der einzelnen Dienstanwendungen. Hiervon stellt SharePoint eine Menge bereit, die jeweils eine bestimmte Funktion übernehmen. Neue umfangreiche Funktionen können ebenfalls mittels eigener Dienstanwendungen in SharePoint eingebracht werden.

Sandkastenlösungen

Sandkastenlösungen wurden mit SharePoint 2010 mit dem Ziel eingeführt, eine bessere Prozessisolierung zwischen SharePoint und eigenem Code zu ermöglichen. Mit der Einführung des App-Modells ist diese Umsetzungsvariante jedoch nicht mehr die erste Wahl. Wenn möglich, sollten eigene Erweiterungen über Apps in SharePoint eingebracht werden.

Workflows

SharePoint unterstützt schon seit frühen Versionen die Umsetzung eigener Workflows. Bis zur SharePoint-Version 2010 verwendeten alle SharePoint-Workflows die Workflow Foundation 3.5 (WF 3.5). Da deren Handhabung sehr schwierig war, wurden oft Workflows mit externen Werkzeugen umgesetzt. SharePoint-2013-Workflows verwenden nun die nächste Generation der Workflow Foundation und die Umsetzung eigener Workflows hat sich dadurch erheblich vereinfacht. Die Verwendung zusätzlicher Werkzeuge ist für die Implementierung somit nicht mehr zwingend notwendig.

Zusammenfassung

Diese erste Ausgabe der Kolumne „SharePoint ganz praktisch“ hat verschiedene Erweiterungsmöglichkeiten für SharePoint kurz und knapp aufgelistet. In den folgenden Ausgaben wird auf die hier vorgestellten Techniken detaillierter eingegangen. Dabei werden die verschiedenen Anpassungsmöglichkeiten anhand konkreter Implementierungen vorgestellt. Wenn Sie weitere Ideen für mögliche SharePoint-Entwicklerthemen haben, freut sich die Redaktion auf Ihre Hinweise: redaktion@windowsdeveloper.de.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -