Seit dem 1. Dezember 2012 stehen die neuen Versionen von Office und SharePoint 2013 für Kunden offiziell zum Download bereit. Also höchste Zeit, einen genaueren Blick auf die neuen Funktionen von SharePoint 2013 aus Sicht des Entwicklers zu werfen. Dieser Artikel soll beleuchten, welche wesentlichen Änderungen es im Bereich der Anwendungsentwicklung unter SharePoint 2013 gibt und wie sie sich einsetzen lassen, um individuelle Lösungen für eine SharePoint-Website zu realisieren.
Cloud-App-Modell: Auch Microsoft hat sich der „Apps“ angenommen und dieses Modell in die Office- und SharePoint-Produktwelt eingeführt. Apps sind ein komplett neues Applikationsmodell für SharePoint, das es ermöglicht, den Funktionsumfang einer SharePoint-Website beliebig zu erweitern. Die Kernidee hinter diesem neuen Modell ist es, ein Bindeglied einer klassischen (externen) Webanwendung zu einer SharePoint-Website zu schaffen, ohne dabei auf die Technologie von SharePoint und das damit verbundene Know-how angewiesen sein zu müssen.
Eine App ist im Wesentlichen eine vollständige Webanwendung, die bestimmte Funktionalitäten innerhalb einer SharePoint-Umgebung anbietet. Stellen Sie sich einen beliebigen Anwendungsfall vor – zum Beispiel die Umrechnung von Währungswerten anhand aktueller Währungskurse. Das App-Modell ermöglicht die Integration einer solchen zusammenhängenden Anwendung als Bestandteil einer SharePoint-Umgebung, ohne dass der Nutzer bemerkt, dass es sich um eine externe Website handelt.
Das Spannende bei diesem neuen Modell ist, dass die App selbst nicht gezwungenermaßen innerhalb der SharePoint-Umgebung vorhanden sein muss (Abb. 1). Sie kann bei Bedarf auch in einer externen Umgebung (z. B. Azure) gehostet und dann in SharePoint integriert werden. Auch bei der Wahl der verwendeten Programmiersprache gibt es keine echten Zwänge. Eine App kann in HTML, JavaScript, PHP und natürlich auch in ASP.NET realisiert werden. Die SharePoint-Produktgruppe hat bei der Gestaltung des neuen App-Modells einen besonderen Fokus auf die Unterstützung von Standards gelegt. So unterstützen Apps zum Beispiel OAuth für Authentifizierung und Autorisierung sowie OData zur Kommunikation mit SharePoint-Daten.
Die Vermarktung von Apps – wie sollte es auch anders sein – erfolgt über einen Marktplatz. Der „SharePoint Store“ liefert eine Art Shopsystem, über das Apps für Office oder SharePoint gegen Entgelt oder kostenlos veräußert werden können. Administratoren können dabei zentral steuern, welche Apps organisationsweit in einer SharePoint-Umgebung installiert werden können. Auch die unternehmensinterne Bereitstellung bestimmter Anwendungen wird vom App-Modell unterstützt. Hierzu stellt SharePoint einen internen Katalog bereit, in dem die entsprechenden Apps hochgeladen werden können. Nach der Installation einer App integriert sich diese nahtlos in die SharePoint-Benutzeroberfläche. Dabei unterstützen Apps drei verschiedene Integrationsstufen:
Als vollständige Webanwendungen unterhalb der SharePoint-Oberfläche (erforderlich): Hierbei ist die App eine komplett eigenständige Webanwendung, die extern oder innerhalb einer SharePoint-Umgebung betrieben werden kann. Das App-Modell unterstützt dabei die vollständige Integration der Anwendung in die Hülle der SharePoint-Oberfläche. „Hülle“ bedeutet, dass Basiselemente der SharePoint-Anwendung bestehen bleiben (Header, Site Actions, Navigation, Footer etc.) und die Anwendung selbst im Inhaltsbereich dargestellt wird.
Als App Part (optional): Einzelne Teile der Webanwendung können in Form eines so genannten App Parts in der SharePoint-Website als eigenständige Komponente integriert werden. Der App Part ist aus technischer Sicht ein iframe, welches einen bestimmten Teil der Anwendung zugänglich macht.
Als Erweiterung eines SharePoint-Menüs (optional): Ein möglicher Zugang zur App kann zum Beispiel über die Erweiterung der SharePoint-Kontextmenüs erfolgen. Das App-Modell nutzt hierzu eine bekannte Technologie: benutzerdefinierte Aktionen. Sie ermöglichen über ein deklaratives Modell bestimmte Standardmenüs einer SharePoint-Benutzeroberfläche anzupassen und hierin die (parametrisierten) Hyperlinks zur App bereitzustellen.
Aus technischer Sicht erfolgt die Integration der App in die SharePoint-Umgebung auf Basis des so genannten Application Manifests. Vergleichbar mit dem Solution Manifest einer SharePoint Solution, ist das Application Manifest im Wesentlichen eine XML-Datei, die die App beschreibt (Listing 1). Darin sind sämtliche Eigenschaften und Voraussetzungen für die Integration und den Betrieb der App in einer SharePoint- oder Office-365-Umgebung zu finden.
Listing 1
<?xml version="1.0" encoding="utf-8" ?>
<!--Created:cb85b80c-f585-40ff-8bfc-12ff4d0e34a9-->
<App xmlns="http://schemas.microsoft.com/sharepoint/2012/app/manifest"
Name="FabiansSharePointApp"
ProductID="{cb0d0449-0d9e-48db-980b-8c9251145242}"
Version="1.0.0.0"
SharePointMinVersion="15.0.0.0">
<Properties>
<Title>FabiansSharePointApp</Title>
<StartPage>~appWebUrl/Pages/Default.aspx?{StandardTokens}</StartPage>
<SupportedLocales>
<SupportedLocale CultureName="de" />
</SupportedLocales>
</Properties>
<AppPrincipal>
<Internal />
</AppPrincipal>
<AppPermissionRequests>
<AppPermissionRequest Scope="http://sharepoint/social/microfeed" Right="Read" />
</AppPermissionRequests>
<AppPrerequisites>
<AppPrerequisite Type="Capability" ID="132084D8-5DA6-4EAB-A636-3ADF44151846" />
</AppPrerequisites>
</App>
Neben den Basisinformationen wie der App-ID und der URL bzw. der Bezeichnung können über das Manifest auch erweiterte Einstellungen definiert werden, wie etwa Authentifizierungsinformationen oder die für die Ausführung erforderlichen Rechte und Systemvoraussetzungen. SharePoint unterstützt die Verwendung bestimmter Tokens, die dann zur Laufzeit mit Werten der Produktivumgebung ersetzt werden. Hierüber kann zum Beispiel die URL der SharePoint-Anwendung, die Sprache oder der URL des betreffenden Elements an die App übergeben werden.
Die eigentliche Logik wird dann direkt von der App ausgeführt. Der Ausführungsort ist dabei von dem angewandten Hosting-Modell abhängig. Das App-Modell unterstützt drei verschiedene Hosting-Optionen:
SharePoint-gehostet: Die App wird als Bestandteil der lokalen SharePoint-Umgebung ausgeführt.
Provider-gehostet: Die App wird auf einem entfernten Webserver bereitgestellt, der eigenständig verwaltet wird.
Auto-gehostet (Azure): Die App wird automatisch in einer Cloud-Umgebung bereitgestellt.
Das Deployment der App ist vom Hosting-Modell abhängig. Prinzipiell wird eine App über eine Art App-Paket bereitgestellt. Es enthält mindestens das Application Manifest. Je nach Hosting-Umgebung enthält das Paket auch die Quelldaten der App selbst oder die jeweiligen SharePoint-Erweiterungen (als .WSP-Datei).
Die Umsetzung von Apps wird vollständig durch Visual Studio 2012 unterstützt. Die Entwicklungsumgebung integriert Vorlagen und Werkzeuge, die eine reibungslose Umsetzung von Apps für SharePoint oder Office ermöglichen. Daneben liefert Microsoft unter dem Codenamen „Napa“ eine komplett webbasierte Entwicklungsumgebung, mit der sich ebenso Apps realisieren lassen.
Zusammen mit SharePoint und Office 2013 geht auch die neue Version von Visual Studio, des SharePoint Designers sowie eines neuen webbasierten Tools namens „Napa“ von der Rampe. Für den erfahrenen SharePoint-Entwickler wird es in Visual Studio 2012 nicht allzu viele „Wows“ geben, da sich in der klassischen Solution-Entwicklung nicht allzu viel geändert hat. Für Lösungen On-Premise bzw. Office 365 existieren nach wie vor die Projekttypen einer Farm bzw. Sandboxed Solution. Dabei bietet die Entwicklungsumgebung Projektvorlagen für die Umsetzung von SharePoint 2010 sowie SharePoint 2013 Solutions (Abb. 2). Neu sind einige integrierte Designer, zum Beispiel für die Deklaration von Listen- oder Felddefinitionen.
Komplett neu hinzugekommen sind Projektvorlagen für die Umsetzung von Office- bzw. SharePoint-Apps. Die Projektvorlage für SharePoint-Apps unterstützt die Umsetzung einer App in einer der drei Hosting-Umgebungen. Je nach Typ (Auto-hostet...