close

In meinem letzten Blogbeitrag hab ich bereits angedeutet, dass es verschieden Möglichkeiten gibt SharePoint 2013 Apps zu hosten. Diesmal möchte ich eine kurze Zusammenfassung der Hosting Möglichkeiten geben. Das SharePoint App Model bietet drei Optionen, die man beim Entwickeln einer neuen SharePoint App bereits wissen sollte, da man sich in Visual Studio bei der Erstellung eines neuen Projekts dafür entscheiden muss.

SharePoint 2013 Bloglog, Visual Studio New project (HATAHET)

Die drei Möglichkeiten sind:

  1. Provider-hosted Apps
  2. Autohosted Apps
  3. SharePoint-hosted Apps

Remote Web

Um das besser zu verstehen, muss ich an dieser Stelle den Begriff Remote Web kurz erklären.

Das Remote Web bezeichnet einen Webserver, der außerhalb der SharePoint 2013 Farm Funktionalitäten für die App zur Verfügung stellt. Es kann nicht nur eigene komplexe Funktionalitäten zur Verfügung stellen, um in einer App verwendet zu werden, sondern es kann selbst auch über das Client Side Object Modell (CSOM) den SharePoint 2013 “anprogrammieren”. Die App, d.h. die Sub-Site, die im SharePoint die App repräsentiert, verwendet in so einem Fall Webseiten des Remote Webs als Startseite. Dies wird im App-Manifest als RemoteAppUrl hinterlegt. “~remoteAppUrl” ist ein dynamischer Token, der beim Entwickeln eine Erleichterung darstellt, da man nicht ständig die URL des Remote-Webservers eingeben muss.

<StartPage>~remoteAppUrl/Pages/Default.aspx?{StandardTokens}</StartPage>

Anmerkung: Das App-Manifest werde ich auch in einem der nächsten Beiträge näher beleuchten.

Das CSOM ist eine Möglichkeit SharePoint 2013 client-seitig anzuprogrammieren, wenn es sich beim Remote Web um eine ASP.NET Site handelt. Da es aber auch das JavaScript Object Modell (JSOM) und die REST API in SharePoint 2013 gibt, wäre es auch möglich mit jeder beliebigen anderen Programmiersprache, z.B. PHP oder Java die Logik zu programmieren.

Provider-hosted und Autohosted

Provider-hosted bzw. Autohosted Apps sind Varianten des selben Typs, bei dem das Remote Web entweder von einem Provider (Provider-hosted) zur Verfügung oder das Remote Web in der Azure Cloud (Autohosted) zur Verfügung gestellt wird.

SharePoint-hosted

Die Variante 3, d.h. SharePoint-hosted Apps haben kein Remote Web im Sinne der obigen Definition. Hier läuft die Logik innerhalb der SharePoint App, d.h. innerhalb der Site ab.

Das App-Manifest hat in diesem Fall folgenden Eintrag:

<StartPage>~appWebUrl/Pages/Default.aspx?{StandardTokens}</StartPage>

“~appWebUrl” ist ebenfalls ein Token, der währen der Entwicklung wichtig ist, da zu diesem Zeitpunkt die eigentliche URL noch nicht bekannt ist. Beim Installieren der App, wird dieser Token dann mit der tatsächlichen URL des Servers ersetzt.

In diesem Fall steht uns ausschließlich das JSOM und die REST API für die Programmierung zur Verfügung. Wie ich das schon in meinem letzten Blogeintrag erwähnt habe, gibt es einen fundamentalen Unterschied zwischen Apps und den bekannt WSPs, es werden keine Assemblies am SharePoint installiert, daher stehen uns Developern “nur” JavaScript oder REST als API zur Verfügung.

Nachfolgende Grafik soll den Unterschied zwischen den Hosting Möglichkeiten nochmal anzeigen. App 1 entspricht hier einer Autohosted/Provider-hosted App und App 2 entspricht der SharePoint-hosted App, die einen eigenen Workflow und eigene SharePoint Listen mitbringt:

SharePoint 2013 Bloglog, Autohosted and SharePoint-hosted(HATAHET)

Wichtig ist also zu wissen, dass das App Modell unterschiedliche Möglichkeiten bietet programmiert und gehostet zu werden. Vor allem zeigt sich hier auch die Möglichkeit eigene Services für Apps zur Verfügung zu stellen, die entweder selbst von einem Webserver, über eine private oder die public cloud zur Verfügung gestellt werden.

Ausblick

Nächstes Mal zeige ich eine SharePoint-hosted App, die mit NAPA erstellt wird. NAPA selbst ist bereits eine SharePoint 2013 App, die es ermöglicht für SharePoint und Office 2013 Apps zu entwickeln. Die so entwickelte App kann dann nach Visual Studio (2012/2013) geholt und richtig “aufgemotzt” werden.

Anbei noch ein paar Links, die dem interessierten Leser mehr Details liefern:

http://msdn.microsoft.com/en-us/library/office/fp179930(v=office.15).aspx
http://msdn.microsoft.com/en-us/library/office/fp179925(v=office.15).aspx

Published: 28.03.2014 13:02

Source: New feed

Michael König

The author Michael König

Michael König ist leidenschaftlicher Informatiker. Er ist als Leiter einer Development-Abteilung sowie als Lead Developer und Application Architect tätig. Michael bringt 20 Jahre Berufserfahrung im Bereich der Software-Entwicklung und im IT-Consulting mit. Seit mehr als 10 Jahren beschäftigt er sich intensiv mit den Microsoft SharePoint-Technologien und ist in diesem Segment vorrangig auf die Software-Entwicklung, Erweiterung und Individualisierung von SharePoint spezialisiert. Heute beschäftigt sich Michael mit den neuen Möglichkeiten von SharePoint Online und On-Premises, Office 365 und Microsoft Azure. Die Themen Bots, Cognitive Services und Machine Learning auf Basis von Microsoft-Technologien gehören hier ebenfalls dazu.

Leave a Response