Durch das neu eingeführte App-Modell mit der aktuellen SharePoint-2013-Version hat Microsoft einen weiteren großen Schritt in Richtung Innovation getan. Aufgrund der hohen Nachfrage nach Applikationen und deren gefühlte Omnipräsenz können sie mittlerweile auf fast allen Endgeräten und mit Windows 8 benutzt und entwickelt werden.
SharePoint gewinnt in der jüngsten Vergangenheit immer mehr an Bedeutung. Viele Unternehmen stehen nach der Einführung von SharePoint 2013 vor der Herausforderung, SharePoint 2013 Apps einzuführen, oder sie möchten neue Chancen mit den SharePoint Business Apps nutzen. Ob sich Apps für das Bereitstellen von Business-Applikationen durchsetzen oder die Mini-Anwendungen schlicht für zusätzliche Funktionen genutzt werden, muss sich erst noch zeigen. Die technischen und infrastrukturellen Voraussetzungen sind mit der neuen SharePoint-Version jedenfalls geschaffen.
Es lässt sich immer wieder in Unternehmen beobachten, dass hier eine On-Premise Lösung zum Einsatz kommt und die Entscheidung gegen den Weg in die Cloud getroffen wird. Dies liegt zum größten Teil an den unternehmensinternen Daten und Datenschutzrichtlinien. Werden die verschiedenen Statistiken und Umfragen im Internet betrachtet, so lässt sich leicht erkennen, wie die Verwendung der einzelnen Versionen ist - die meisten Unternehmen setzen noch SharePoint 2010 ein. Schaut man sich die Migrationsrate an, wird zum größten Teil nach SharePoint 2013 migriert. Dies liegt zum größten Teil an den innovativen Änderungen zwischen Version 2010 und 2013. Gerade mit der Einführung des App-Modells, aber auch durch die integrierten Social-Business Funktionalitäten kann SharePoint 2013 besonders im Unternehmensumfeld punkten. Im Unternehmen sollte vor der Einführung und der Migration überlegt werden, in welche Richtung langfristig geplant wird. Nicht die Frage nach dem "Wo stehe ich gerade?" ist relevant, sondern die Fragen "Wo möchte ich in den nächsten Monaten hin?" und "Was sind meine langfristigen Ziele, die ich erreichen will?"
Jedoch ist nicht alles Gold, was glänzt, und auch das App-Modell in der aktuellen Version birgt Nachteile. Dieser Artikel beschreibt Herausforderungen, Probleme und "Gaps", die bei der Entscheidung und Entwicklung relevant sein könnten.
Wo läuft die App?
Um sich einen detaillierten Überblick über die verschiedenen Hosting-Möglichkeiten zu verschaffen, gibt es eine sehr gute Übersicht auf der MSDN Seite von Microsoft. Auf diesen Aspekt wird in diesem Artikel nicht speziell eingegangen.
Fokus dieses Artikels soll es sein, die Herausforderungen und Probleme bei der Einführung sowie Entwicklung von SharePoint Apps zu beleuchten. Die Inhalte des Artikels zeigen praxisorientierte Erfahrungen und mögliche Probleme, die ich mit Ihnen als Leser teilen möchte. Es sollte beachtet werden, dass wir uns gerade in Version (1.0) der Apps befinden, die von Microsoft veröffentlicht wurden. Diesbezüglich bleibt es leider nicht außen vor, dass noch einige Fehler vorhanden sind. Es werden über die Zeit hinweg kontinuierlich Fehler behoben. Microsoft reagiert hier sehr stark auf die Erwartungen und Reaktionen von Unternehmen, freien Entwicklern und Privatanwendern. Um den Bogen zu spannen und auf die Herausforderungen abzuleiten, wird zuerst beschrieben, wann SharePoint Apps überhaupt Sinn ergeben und wann deren Umsetzung technisch nicht möglich ist.
Wann sind SharePoint Apps als Lösung sinnvoll?
In Tabelle 1 sind Gründe zu finden, die für die Nutzung von SharePoint Apps sprechen und erklären, wieso diese im Gegensatz zu Standard SharePoint Solutions verwendet werden sollten. Die Tabelle stellt lediglich einen ersten Blick auf das gesamte Portfolio dar und erhebt nicht den Anspruch auf eine umfassende Darstellung aller möglichen Gründe. Es bleibt aber zu erwähnen, dass der traditionelle SharePoint-Solution-Ansatz immer noch als Enterprise-Lösung in Unternehmen zum Einsatz kommt. Dies liegt zum größten Teil an den umfangreichen Funktionalitäten. Gerade für Entwickler stehen zahlreiche Möglichkeiten zur Verfügung, um eine wahre Solution zu entwickeln und dadurch einen Mehrwert für Unternehmen zu liefern.
Tabelle 1: Wann SharePoint Apps sinnvoll sind
Gründe für den Einsatz von Apps | Beschreibung |
App-Katalog | Über den App-Katalog in SharePoint lassen sich verfügbare Apps steuern, das heißt, in diesem Katalog können erstellte Apps hochgeladen und den Anwendern in SharePoint zur Verfügung gestellt werden - Apps können ebenso aktualisiert und gelöscht werden. |
App Version | Jedes App-Paket hat zusätzlich zu einer sogenannten App ID (eindeutiger Identifier) auch eine App-Paket-Version, die über die Manifest-Datei in Visual Studio geändert werden kann. Dies erleichtert das Management der einzelnen App-Versionen auf unterschiedlichen Umgebungen. |
Lebenszyklus | Der Vorteil daran ist, dass dieser App-Katalog mit dem Windows Phone Store vergleichbar ist. Wurde eine App geändert, muss lediglich die Version geändert und wieder in den Katalog hochgeladen werden. SharePoint kümmert sich alleine um den Update-Prozess. |
Cloud-fähig | SharePoint Apps können in Office 365 verwendet werden. Full-Trust Lösungen sind aktuell noch nicht Cloud-fähig. |
Entwicklungsumgebung (Visual Studio) | Bislang konnte nur auf diesem System SharePoint Solutions entwickelt werden, auf dem auch SharePoint installiert ist. SharePoint Apps lassen sich lokal entwickeln, auch wenn lokal kein SharePoint Server läuft. Es besteht zusätzlich die Möglichkeit, remote SharePoint Apps zu nutzen. Dies stellt meiner Meinung nach einen großen Mehrwert dar. |
Wann machen SharePoint Apps als Lösung weniger Sinn?
Wie erwähnt zeigt der obige Auszug lediglich einen Teil des Portfolios und bietet keinen umfassenden Überblick. Kommen wir nun zu der Frage: Wann ergibt es weniger Sinn, SharePoint Apps zu verwenden, oder wann können SharePoint Apps nicht verwendet werden?
Lassen Sie uns mit einer gewissen Flughöhe diese Fragen beantworten. Es gibt Punkte, die gegen eine Entwicklung von Apps sprechen, weil es generell technisch in SharePoint nicht möglich ist oder weil es einfach den Entwicklungszyklus durch zu großen Aufwand oder andere Einflussfaktoren behindern würde.
Sollten Sie Timer Jobs in Apps verwenden wollen, muss ich Sie leider enttäuschen. Es ist nicht möglich, über die Apps Timer Jobs zu erstellen - Timer Jobs müssen separat erstellt und in der Zentraladministration verwaltet werden. Leider ist es auch nicht möglich, Delegate Controls in Apps zu verwenden. Sie sehen schon, dass die Apps auch Nachteile mit sich bringen, gerade wenn tiefer in die SharePoint-Architektur eingetaucht werden möchte.
Wie sieht es eigentlich mit dem Branding aus? Wie Erfahrungen zeigen, möchten Unternehmen ihre Oberflächen immer fancy haben. Es gibt Workarounds, um Branding in Apps zu nutzen, aber eigentlich sollten hierfür eher Sandbox Lösungen eingesetzt und verwendet werden. Beim Umgang mit Workflows, Deployment und Zugriffen gibt es ebenso Einschränkungen. Es können keine wiederverwendbaren Workflows verwendet, keine assets nach /_vti_bin oder /_layouts eingesetzt sowie keine App-Parts angesprochen werden.
Somit muss vor der Entscheidung, ob Apps eingeführt oder entwickelt werden sollen, gut evaluiert werden, was das Ziel ist und was damit erreicht werden möchte. So wird die Situation vermieden, hinterher festzustellen, dass es überhaupt nicht möglich ist - Thema Sackgasse!
Bestehende Herausforderungen, Probleme und Fehler
Die folgende Tabelle 2 zeigt Herausforderungen, welche bei der Entwicklung von SharePoint Apps auftreten können. Diese gehören aus meiner Sicht zu den wichtigsten. Wie am Anfang des Artikels angesprochen, ist davon auszugehen, dass in Version 1.0 noch einige Fehler vorhanden sind oder dass einige Funktionalitäten aktuell noch nicht integriert wurden.
Tabelle 2: Bestehende Herausforderungen und Probleme
Herausforderungen | Beschreibung |
Keine User Controls verfügbar | Es stehen keine User Controls zur Verfügung, die die Entwicklung erleichtern würden - Document Uploader, etc. |
Nur EINE Instanz | Es kann nur eine App aus dem App-Katalog zu einer Website hinzugefügt werden. |
SharePoint Designer | Wollen Sie mit dem SharePoint Designer auf Ihre App zugreifen, muss ich Sie leider enttäuschen. Es gibt aktuell keine Möglichkeiten, Änderungen am Design, in der Liste etc. in der App vorzunehmen. Aus meiner Projekterfahrung kann ich berichten, dass diese Funktionalität manchmal durchaus fehlt. |
Keine Migration möglich | Manche von Ihnen wünschen sich mit Sicherheit eine automatisierte Migrationsunterstützung von einem Sandbox-Solution-Projekt in ein App-Projekt in Visual Studio. Leider ist eine solche Eigenschaft aktuell nicht vorhanden. Dies wäre aus meiner Sicht ein sehr interessantes Feature. |
URL zur Liste | Bei Enterprise Apps in Unternehmen, von denen nur eine Instanz installiert wird, wird großer Wert auf Sicherheit gelegt - hierbei spielt der Zugriff auf die SharePoint-Listen ebenso eine große Rolle. Bei der Verwendung von Listen in Apps kann direkt auf die Listen über die URL zugegriffen werden. Dies sollte natürlich verhindert werden, um eine Manipulation der Daten zu vermeiden. Hierbei gibt es zwei Möglichkeiten - entweder es wird die URL der Listen über die Listeneigenschaften geändert oder es wird die getrennte User/App-Berechtigung und Schnittmenge eingesetzt, um die Zugriffe zu steuern. |
Individuelle App Updates | Sobald eine neue App-Version in den App-Katalog hochgeladen wurde, wird kein automatischer Update-Prozess angesprochen. Das heißt, jede App-Instanz muss von den Anwendern manuell aktualisiert werden. |
Verwendung von WebParts | Microsoft schlägt auf der MSDN Seite vor, dass XsltListViewWebParts zum Anzeigen von List-Elementen in Apps verwendet werden können. Das Problem daran ist, dass beim Update die gleichen WebParts nochmals angelegt werden - somit sind sie doppelt vorhanden. Dadurch kann die Seite, in der die WebParts integriert sind, nicht mehr richtig gerendert werden, da SharePoint nicht mehr weiß, welches WebPart benutzt werden soll. Dies lässt sich vermeiden, indem vor dem Update die WebParts aus der Seite gelöscht werden. |
Berechtigungen | Sollte Ihre App ein komplexes Berechtigungskonzept beinhalten, lässt sich dieses schwer abbilden. SharePoint bietet zwar out of the box (ootb) eine sehr schöne und einfache Art und Weise Gruppen zu verwenden, allerdings müssen diese bei Verwendung von SharePoint-Gruppen trotzdem komplett in der App evaluiert werden. Das heißt, es muss in der App überprüft werden, ob dieser User in der Gruppe ist, um bestimmte Dinge durchzuführen oder zu sehen. Ebenso ist es über Visual Studio nicht möglich, Berechtigungen auf Listen zu setzen. Dies ließe sich über EventReceiver lösen. Die Implementierung der Funktionalitäten mit JavaScript ist auch unsicher und kann leicht manipuliert werden. |
Eine der größten Herausforderungen ist, dass zu wenig Dokumentation zu speziellen Themen vorhanden ist. Dies gilt vor allem, wenn bestimmte Herausforderungen oder Probleme anstehen oder sogar ein interner Fehler vorhanden ist. Es bleibt ebenso zu erwähnen, dass in der obigen Tabelle mit höchster Wahrscheinlichkeit nicht alle "Gaps" angesprochen wurden.
Fazit
Ich hoffe, Sie haben nun alle relevanten Informationen erhalten, um bei bestehenden Problemen und Herausforderungen in Ihrer Vorgehensweise oder in der Entwicklung von Apps schneller und besser agieren zu können.
Dieser Artikel hatte ebenso zum Ziel, potenzielle Sackgassen aufzuzeigen. Durch die Best-Practice-Ansätze, die aufgezeigt wurden, sollten Sie sich nicht in Sackgassen wiederfinden, sondern vorher den richtigen Weg einschlagen können, indem Sie Lösungswege vorab erkennen und richtig anwenden.
Wir können gespannt bleiben, welche Erneuerungen und Anpassungen in der zweiten Version des SharePoint-App-Modells zu erwarten sind. Die Herausforderungen und Probleme wurden in diesem Artikel angesprochen. Nun stellt sich noch eine wichtige Frage, nämlich wie es mit der generellen strategischen Einführung von SharePoint Apps aussieht. Wie sollte am besten vorgegangen werden, damit das Unternehmen den größten Benefit und Mehrwert aus den Apps holen kann? Diese Fragen spielen eine entscheidende Rolle bei der Entscheidungsfindung zur Einführung von SharePoint Apps. Ohne eine strategische Entscheidung wird es zu keiner Entwicklung geschweige denn zu den aufgezeigten Herausforderungen und Problemen kommen. Hier sollte zuerst darüber nachgedacht werden - Bottom-up-Vorgehen. (bw)