Neues fĂĽr Entwickler in SharePoint 2013, Teil 1

FĂĽr Entwickler sind in der neuen Version des SharePoint-Servers die EinfĂĽhrung der SharePoint-Apps und die konsequente Verwendung von Webstandards sicherlich am wichtigsten. Die UnterstĂĽtzung von HTML5, JavaScript, OAuth und OData/REST hilft dann auch im Zusammenspiel mit Windows 8 und Office 2013.

vorlesen Druckansicht
Lesezeit: 14 Min.
Von
  • Bernd Pehlke
Inhaltsverzeichnis

Für Entwickler sind in der neuen Version des SharePoint-Servers die Einführung der SharePoint-Apps und die konsequente Verwendung von Webstandards sicherlich am wichtigsten. Die Unterstützung von HTML5, JavaScript, OAuth und OData/REST hilft dann auch im Zusammenspiel mit Windows 8 und Office 2013.

Die neue SharePoint-Version stellt für Entwickler einen Paradigmenwechsel dar. Microsoft fördert die Client-Techniken HTML5, CSS3 und JavaScript massiv, sodass sich die Neuerungen auf diesen Bereich konzentrieren. Die wesentlichen sind das neue Cloud-App-Modell, clientseitiges Rendering, suchgetriebene Applikationen und Branding/Theming. In diesem Artikel wird das neue App-Modell anhand eines Beispiels vorgestellt. Ein zweiter stellt demnächst die weiteren Neuerungen vor.

Ausgehend von Microsoft Office als Frontend für Business-Anwendungen und SharePoint als Middleware für Zusammenarbeit und Unternehmensprozesse, greift Microsofts Vision zur Modernisierung der Office- und SharePoint-Plattform Trends wie HTML5, JavaScript und CSS3 auf. Ferner erwartet der Konzern, dass bis 2014 75 Prozent der Fortune-1000-Unternehmen öffentliche Web APIs bereitstellen, die zum Beispiel REST, RSS/Atom oder JSON verwenden.

Microsoft will eine konsistente Plattform für die App-Entwicklung bieten. Apps sind laut dem Unternehmen eine neue Klasse von Anwendungen, die neue Szenarien und User Experiences hervorbringen sowie sich öffentlich über den Office App Store oder unternehmensintern verteilen lassen. Wesentliche Design-Prinzipien von Apps sind:

  • Apps fĂĽhlen sich wie eine natĂĽrliche Erweiterung von SharePoint/Office 2013 oder Windows 8 an.
  • Sie helfen dabei, Aufgaben so schnell und effizient wie möglich zu erledigen, damit man produktiver und erfolgreicher wird.
  • Apps sollen statt vieler schlechter eher weniger, dafĂĽr aber richtig gute Funktionen beziehungsweise Use Cases haben.

Allgemeine App-Architektur: Es werden Apps in die Gesamtarchitektur von Office-Clients und SharePoint-Server eingeordnet (Abb. 1).

(Bild: Microsoft SharePoint Conference 2012)

Die allgemeine Architektur der Apps ist einfach. Eine App, egal ob für Office oder SharePoint, besteht aus einer Manifest-Datei und einer Webpage. Sie können clientseitigen Code enthalten, aber auch serverseitigen, etwa bei ASP.NET-Apps. Auf der Clientseite werden sie im Browser ausgeführt, und der massive Einsatz von JavaScript entlastet dabei die Server. Denn im Gegensatz zu ASP.NET-Webseiten wird JavaScript-Code komplett im Browser verarbeitet.

Auf der Serverseite gibt es drei Möglichkeiten, Apps zu hosten: "auto-hosted", über einen Provider oder mit SharePoint. Während mit SharePoint gehostete Apps lediglich Client-Techniken verwenden können, also HTML, JavaScript, XML und CSS, können "auto-hosted" und durch Provider betriebene Anwendungen beispielsweise auch ASP.NET oder PHP verwenden. Letztlich nutzt der Programmierer solche "autohosted" Apps, wenn er für Office 365 oder Windows Azure entwickelt. Bei bei den sogenannten "Provider-hosted Apps" verwendet er zum Beispiel einen unabhängigen Webserver oder ein LAMP-System, das eine Webanwendung enthält, die über Schnittstellen unter Verwendung von OAuth 2.0 (zur Authentifizierung) auf SharePoint zugreift.

Auf der Client-Seite kann der Entwickler die APIs von Office.JS für den Zugriff auf Office-Dokumente in den Apps verwenden sowie das bekannte, aber stark erweiterte Client-Side Object Model (CSOM) von SharePoint. Auf der Serverseite können Apps lediglich über die REST-Schnittstelle sowie CSOM auf SharePoint zugreifen. Das Server Object Model, das in sogenannten Farmlösungen zum Einsatz kommt, lässt sich für Apps nicht nutzen.

Die Laufzeitumgebungen sind bei Office 2013 Client-Anwendungen wie Word oder Excel und deren Abwandlungen, zum Beispiel die Web- oder mobilen Apps, auf der Serverseite SharePoint, entweder "on premise" oder SharePoint Online/Office 365. Das Deployment der Apps, egal ob für Office oder SharePoint, besteht vereinfacht aus den folgenden Schritten:

  1. Der Entwickler erstellt die App.
  2. Die Manifest-Datei (.xml) wird im Office App Store (öffentlich) oder App-Katalog (on premise) installiert.
  3. Die Webseite der App wird auf einem Webserver eingespielt (on premise, Cloud oder extern).
  4. Kunden oder Unternehmensanwender können die Apps aus dem Office App Store beziehen beziehungsweise den Katalog verwenden.

Obwohl die Apps im Wesentlichen "nur" Client-Techniken enthalten können, gibt es eine lange Liste zusätzlicher Module, die in Apps enthalten sein können:

  • Features (nur Web-scoped)
  • Custom Actions (fĂĽr MenĂĽ-Einträge und Ribbon-Erweiterungen)
  • Remote Event Receivers (neue Event-Handler, die mit Client-Techniken implementiert und registriert werden)
  • Markup, das Webparts referenziert, inklusive App Parts, die in SharePoint enthalten sind, aber keine Custom-Webparts
  • eigene CSS- und JavaScript-Dateien zur Verwendung in SharePoint-Seiten
  • Module (eine Menge von Dateien)
  • Pages
  • Listen-Templates sowie Listen- und Bibliotheksinstanzen
  • eigene Listenformulare und -ansichten
  • eigene Inhaltstypen
  • Felddefinitionen (nur Feldtypen, die in SharePoint enthalten sind)
  • Microsoft Business Connectivity Services (BCS) Models: externe Inhaltstypen, die auf dem Modell basieren, und externe Listen, die den Inhaltstyp verwenden
  • Workflows
  • Property Bags
  • Web-Templates (aber keine Site Definitions)

Es gibt drei Arten von Apps in SharePoint:

  1. Vollbild-Apps sind die gängigste Variante. Sie lassen sich mit oder ohne SharePoint-"Chrome" ausstatten, also ohne die Nutzung von Stylesheets und der Navigationsleiste von SharePoint. Im Regelfall werden die SharePoint-Elemente und -Stilvorlagen verwendet, damit sich die App optisch integriert.
  2. App Parts sind wie Webparts, die per IFrame die App-Webseite anzeigen. Allerdings hat das App Part nicht die gleichen Eigenschaften. Es unterstĂĽtzt nur statische Eigenschaften vom Typ String, Enum, Int und Bool, weil diese per URL-Parameter an die App-Seite gesendet werden. AuĂźerdem funktionieren keine Verbindungen zwischen den App Parts.
  3. Die letzte Möglichkeit ist über Custom Actions Menüeinträge zu Ribbon-Leisten oder Kontextmenüs (ECB bzw. Callout) hinzuzufügen, über die man die App in einem Modaldialog starten kann.