Entwicklung von SharePoint-Erweiterungen auf der Basis des Cloud App Model

    - Tobias Blum am 11.03.2015

    Die Cloud, Office 365 und damit auch SharePoint Online sind für Microsoft von strategischer Bedeutung. Trotz der Ankündigung, dass zumindest das nächste Release – SharePoint 2016 – noch als On-Premise Variante zur Verfügung stehen wird, sollte man sich daher schon heute bei Umsetzung von neuen Anforderungen – soweit möglich – an den Vorgaben der Cloud Variante orientieren, um eine zukunftsfähige Lösung zu erhalten. Da SharePoint Online sehr kurzen Updatezyklen unterworfen ist, hat Microsoft hier einige Restriktionen eingeführt. So wird beispielsweise auch davon abgeraten, das Masterpage Template anzupassen, da man ansonsten z.B. wichtige Updates im Office 365 Navigationsmenu oder der Ribbon Bar verpassen könnte.

    Customizing in SharePoint 2013

    Seit SharePoint 2013 existieren zwei Wege zum Customizing: Die klassische SharePoint Solution, die per SharePoint Solution Package (WSP) auf der SharePoint-Farm deployed wird, und das SharePoint Cloud App Model als neue Variante. Beim App Model wird darauf verzichtet, eigenen Programmcode in der SharePoint-Instanz zu verwenden, unabhängig davon, ob es sich dabei um eine SharePoint Online oder On-Premise Instanz handelt. Der eigentliche App Code läuft entweder clientseitig in Form von JavaScript oder außerhalb der SharePoint-Instanz als Provider-hosted App unter Nutzung verschiedenster Techniken. Die Grundlage hierfür bildet das sogenannte Client-Side Object Model (CSOM), das einen komfortablen Zugriff auf SharePoint-Objekte ermöglicht und als .net (C# oder VB.net) und Javascript-Bibliothek (hier häufig auch als JSOM bezeichnet) zur Verfügung steht. Weiterhin stehen REST-Schnittstellen zur Verfügung, über die ein Zugriff auf SharePoint-Funktionen unter Nutzung beliebiger Technologien (PHP, Java, …) möglich ist. Auch eine Kombination verschiedener Techniken ist denkbar und in einigen Fällen auch sinnvoll.

    Neben der Frage, wie die Applikationsfunktionalität entwickelt werden soll, gibt es auch einige Besonderheiten beim Deployment der Erweiterungen auf dem Zielsystem zu beachten: Einige der mächtigen Möglichkeiten, die SharePoint-Entwickler beim Deployment vom Farm-Lösungen als WSP zur Verfügung haben, stehen für die Auslieferung im Cloud App Model nicht zur Verfügung. Daher muss ein anderer Weg für die automatisierte Veröffentlichung von Inhalten beschritten werden.

    Cloud App Model Architektur

     

    Ein praktisches Beispiel

    Um sicherzustellen, dass beim manuellen Anlegen einer Website immer die gleichen Sharepoint-Elemente, wie Listen, WebParts, usw. automatisiert ausgerollt werden, wurde bisher oft ein Custom SiteTemplate genutzt. Mit diesem kann ein "Bauplan" für eine Website definiert werden. Auch wenn dieses Werkzeug heute noch unverändert zur Verfügung steht, so rät Microsoft vom Einsatz inzwischen ab (Link 3), da ein SiteTemplate von den Erweiterungen und Änderungen in der Vorlage, auf der es basiert (z.B. eine Teamsite) abgekoppelt ist. Dies führt im besten Fall nur dazu, dass neue Features der Teamsite nicht in den eigenen Websites zur Verfügung stehen, im schlechtesten Fall führt dies zu Darstellungs- oder Auslieferungsfehlern. Der empfohlene Ansatz sieht vor, dass eine außerhalb von SharePoint laufende Software (dies könnte eine ProviderHosted-App in C#, eine native Windows-Software oder eine andere Lösung sein) diese Schritte über CSOM oder REST automatisiert ausführt. So wird eine Standard-Teamseite angelegt und mit den gewünschten Elementen versehen. Diesen Ansatz bezeichnet Microsoft als Remote Provisioning. Für den Nutzer kann diese Funktion komfortabel in die Oberfläche integriert werden.

    Obwohl Farm Solutions offiziell noch nicht abgekündigt (deprecated) sind, ist die Empfehlung von Microsoft klar: „Develop an app whenever you can“.

    Die Vorteile des App Models

    Die Entwicklung von Erweiterungen auf Basis des App Models bringen einige Vorzüge mit sich:

    • Sandboxed Solutions, die eigenen Programmcode enthalten, sind deprecated. In Zukunft können zumindest im Office 365-Kontext nur noch Apps genutzt werden.
    • Apps können sowohl in der Cloud als auch On-Premise genutzt werden, Farm Solutions dagegen können ausschließlich On-Premise deployed werden.
    • Apps sind einfach zu installieren und zu pflegen.
    • Das App Model trägt zu Integrität und Sicherheit von SharePoint bei.
    • Das App Model ist weniger proprietär als klassische Solution Entwicklung, es werden die Standards HTML, REST, JavaScript, OData und OAuth genutzt.
    • Apps können ein echter Bestandteil der von SharePoint gerenderten Seiten sein (keine iFrame-Integration).
    • Die technischen User, unter deren Account die Apps laufen, können mit anderen Berechtigungen versehen werden als User, die die App aufrufen.

    Sofern Sie also mit dem Gedanken spielen, mittel- bis langfristig zur Cloud wechseln zu wollen, sollten Sie rechtzeitig daran denken, Ihre klassischen Solutions auf das App Model umzustellen. Neue Erweiterungen sollten Sie nur noch auf Basis des App Models entwickeln, auch wenn Sie vorerst auf eine On-Premise Lösung setzen.

    Quellen:

    1. O365 DevPnP - App Model (.PPTX)
    2. O365 DevPnP - Branding (.PPTX)
    3. O365 DevPnP - Site Provisioning (.PPTX)

    2 Kommentare

    Jetzt kommentieren!
    1. netmedia | am 07.09.2015
      Wir haben die Links zu den Powerpoint-Dateien aktualisiert.
    2. naturlieb | am 23.06.2015
      Die Links zu Quell-Dateien (pptx) funktionieren nicht.

      Jetzt kommentieren!