© Kellie L. Folkerts/Shutterstock.com
JavaScript für SharePoint und die Auswirkungen auf den Application Lifecycle

JavaScript Application Lifecycle


JavaScript in SharePoint 2013 ist nun salonfähig geworden für das Enterprise-Umfeld. Die enormen Vorteile liegen in den interaktiven Benutzeroberflächen, dem beschleunigten Ausbringen der erstellten Lösungen und der Entkoppelung der SharePoint-Plattform von den Applikationen. Um diese Investments zu sichern, ist eine Erweiterung des Application Lifecycle in allen Phasen unabdingbar.

Im Rahmen des SharePoint 2013 App Models wird JavaScript auf der Clientseite zur Kommunikation mit dem SharePoint-Server eingesetzt. Bei der Anforderungsanalyse kommen die eindeutigen Vorzüge von JavaScript in Richtung dynamischer Benutzeroberflächen zum Vorschein. Ein agiler Ansatz mit frühen Piloten ist zu bevorzugen, um die gewünschte Benutzerinteraktivität sichtbar und überprüfbar für den Endbenutzer nachzuweisen.

Zu den schon bekannten Rahmenparametern wie Layout, Plausibilitätsüberprüfungen und darzustellende Elemente einer Website kommen zusätzlich noch verfeinerte Anforderungen in Bezug auf die Interaktivität zum Tragen, z. B. die Aktualisierung der Website ohne kompletten Wiederaufbau nach der Teileingabe von Informationen und das Anzeigen von „OnHover“-Informationen.

Die genannten Punkte bedeuten zumindest eine Erweiterung der schon etablierten Softwareentwicklungsprozesse mit Erfassung der Anforderungen im Hinblick auf die Interaktivität der Benutzeroberfläche. Dies schließt notwendige Schulungen für das Training der mit der Anforderungsanalyse befassten Mitarbeiter ein. Notwendige Änderungen am Softwareentwicklungsprozess sind natürlich wie immer entsprechend zu begleiten, und die erfolgreiche Umsetzung ist zu überprüfen.

Design

Die Sprache JavaScript hat große Bedeutung bei der Erstellung von SharePoint-Apps auf der 2013er-Plattform erlangt und kommt häufig zum Tragen, wenn hier komplette Lösungen ausgebracht werden sollen. Im Folgenden werden die beiden Möglichkeiten SharePoint-hosted und Cloud-based für das neue App-Modell vorgestellt.

Damit bieten sich grundsätzlich zwei Möglichkeiten des Zugriffes über JavaScript von der Clientseite an. Bei dem SharePoint-hosted App-Modell werden nur Komponenten wie HTML, CSS und JavaScript verwendet, die sich beim Aufruf der App auf der Clientseite, also im Browser, befinden. Dieser Ansatz ist geeignet, kleine und abgegrenzte Funktionalitäten umzusetzen (Abb. 1).

guenther_alm_1.png

Abb.1: SharePoint-hosted App

Wenn zur Abdeckung der Anforderungen komplexere Komponenten benötigt werden, in denen die Laufzeitumgebung des Browsers nicht ausreichend ist, so werden diese Komponenten in einer Remote Website auf einem Applikationsserver ausgebracht und häufig wird dabei die Sprache JavaScript im Browser clientseitig mit anderen Sprachen wie C# oder aber auch PHP und weitere Websprachen serverseitig verwendet (Abb. 2).

guenther_alm_2.png

Abb. 2: Cloud-based App

Für den Zugriff auf den SharePoint-Server kommt einerseits das clientseitige Objektmodell (JavaScript Object Model – JSOM) zum Einsatz, das sich am serverseitigen Objektmodell orientiert. Andererseits gilt der Zugriff über REST (REpresentational State Transfer) als weitere Alternative. Letztendlich kann auch im Rahmen von Applikationsseiten in SharePoint selbst JavaScript zur Anwendung kommen.

Der Bedeutungsgewinn im Rahmen des neuen App-Modells führt dazu, das JavaScript-basierte Anteile immer umfangreicher und komplexer werden. Im Rahmen der Designarbeiten ist begleitend sicherzustellen, dass die Komponenten wiederverwendbar und erweiterbar sind sowie eine hohe Wartbarkeit und Testbarkeit besitzen. Ein Designwerkzeug zur Erfüllung dieser Anforderungen ist der Einsatz von Entwurfsmustern, um die Nachteile einer nicht getypten und dynamischen Sprache wie JavaScript in Grenzen zu halten.

Die Namenskonflikte sind einer der Hauptstolpersteine bei umfassenden JavaScript-Komponenten. Hier gilt es durch die Verwendung des Namespace-Entwurfsmusters etwas Ordnung in das Chaos zu bringen.

Weitere einfache Entwurfsmuster, die sinnvoll im Rahmen von JavaScript-Komponenten genutzt werden können, sind Closures-Entwurfsmuster zur Kapselung der Daten und Modulentwurfsmuster, um Module analog aus anderen höheren Programmiersprachen zu emulieren.

Die zuvor genannten Entwurfsmuster bilden die Möglichkeit, die Software im Kleinen überschaubar zu halten. Bei umfassenden Softwarekomponenten wird es notwendig, noch komplexere Entwurfsmuster wie das im Folgenden beschriebene Model-View-ViewModel-(MVVM-)Entwurfsmuster einzusetzen, um schwer wartbare Softwarekomponenten, mit entsprechend erhöhten Aufwänden aufgrund von Software-Redesign bei Erweiterungen und Fehlerbehebung, zu vermeiden (Abb. 3).

Die Knockout-Bibliothek [1] stellt eine MVVM-Implementierung zur Verfügung und bietet hier die Möglichkeit, eine übersichtliche Struktur in die Softwarekomponenten zu bringen sowie wiederverwendbare, austau...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang