SharePoint
# SharePoint

SharePoint ist eine Webanwendung von Microsoft, die unter anderem folgende Anwendungsgebiete abdeckt:

* Zusammenarbeit, beispielsweise das Verwalten von Projekten oder die Koordination von Aufgaben,
* Soziale Netzwerke, beispielsweise über persönliche Webseiten, Team-Webseiten, Diskussionsgruppen und Blogs,
* Intranetportale,
* Content-Management über Dokumentenmanagement-Funktionen, Inhaltsverwaltung, Metadaten und benutzerangepasste Suchfunktionen,
* Geschäftsanwendungen.

Die erste Version der unter dem Codenamen ‚Tahoe‘ entwickelten Software wurde ab dem Jahr 2001 angeboten. Nach Angaben von Microsoft wird SharePoint von 200.000 Unternehmen eingesetzt und hat 190 Millionen Nutzer.

## Editionen

SharePoint ist in einigen verschiedenen Editionen verfügbar, die dem Nutzer jeweils unterschiedliche Funktionalitäten bieten.

### SharePoint Server

SharePoint Server wird für Unternehmen bereitgestellt, die eine größere Kontrolle über das Verhalten oder das Design von SharePoint anstreben. Dabei wird diese Edition von SharePoint auf der IT-Infrastruktur des Kunden installiert. Der SharePoint-Server erhält im Vergleich zu SharePoint-Online seltener Aktualisierungen, lässt sich dafür aber flexibler an die Anforderungen des einzelnen Unternehmens anpassen. Der SharePoint-Server ist in zwei Editionen verfügbar: Standard und Enterprise. Foundation als dritte, kostenlose Edition wurde eingestellt, ist aber weiterhin in der Version 2013 verfügbar.

### SharePoint Online

Das gehostete SharePoint von Microsoft ist in der Regel in Microsoft 365-Abonnements enthalten, kann aber auch direkt erworben werden. SharePoint Online hat den Vorteil, dass kein eigener Server betrieben werden muss, es fehlen jedoch die Anpassungsoptionen einer selbst gehosteten Installation von SharePoint. SharePoint-Online ist zwar auf Kernfunktionen im Bereich der Zusammenarbeit, des Dokumenten- und Content-Managements sowie des Hostings und der Synchronisation von Dateien beschränkt, erhält aber sehr viel häufiger Aktualisierungen und neue Funktionen.

## Anwendungsgebiete

### Übersicht

Microsoft nennt sechs Funktionsbereiche von SharePoint:

* Sites: Der Zugriff auf alle Funktionen des SharePoints mittels Webseiten, die individuell angepasst werden können;
* Communities: Dazu gehört die Möglichkeit, persönliche Webseiten (mySites) einzurichten, sowie die Möglichkeit, soziale Medien wie Wikis, Diskussionsforen, Websites für Teams, Teamkalender einzurichten und zu nutzen.
* Content: Die Möglichkeit, sowohl Dokumente im herkömmlichen Sinn als auch Inhalte aus sozialen Medien zu versionieren und Regeln zu deren Aufbewahrung und Lenkung einzurichten.
* Search: Die Möglichkeit, nach Informationen innerhalb und außerhalb des SharePoints zu suchen, sowie die Möglichkeit, diese Suche individuell und unternehmensweit zu gestalten und zu optimieren.
* Composites: Die Möglichkeit, SharePoint-Komponenten auf Webseiten frei zusammenzustellen, sowie die Möglichkeit, Microsoft-Office-Anwendungen und externe Anwendungen dort nahtlos einzubinden, zu visualisieren und mit ihnen aus dem SharePoint heraus zu arbeiten. Auch die Gestaltungsmöglichkeiten mittels SharePoint Designer und InfoPath zählt Microsoft zu diesem Funktionsbereich.
* Insights: Die Möglichkeit, Unternehmensdaten aus unterschiedlichen Quellen zu aggregieren, auf Webseiten grafisch aufzubereiten und zur Nutzung freizugeben.

### Sites

Zentrales Element in SharePoint sind Websites. In ihnen werden alle Inhalte strukturiert und dargestellt. Eine SharePoint-Website besteht aus beliebig vielen einzelnen Webseiten. Diese Einzelseiten nehmen die eigentlichen Inhalte auf. Dies können sein:

* Dokumentbibliotheken;
* Wikibibliotheken;
* Bildbibliotheken;
* allgemeine benutzerdefinierte Listen;
* Listen mit speziellen Funktionen, darunter:
   * Ankündigungslisten;
   * Aufgabenlisten;
   * Kalender;
   * Diskussionsforen.

SharePoint-Websites können ihrerseits Unter-Websites enthalten, die sich hierarchisch schachteln lassen. Mehrere Websites, deren Berechtigungen gemeinsam verwaltet werden, werden in einer Websitesammlung zusammengefasst.

Neue Websites lassen sich, entsprechende Rechte vorausgesetzt, mittels Vorlagen einfach erstellen. Im Lieferumfang der SharePoint Foundation sind enthalten:

* eine Vorlage für leere Websites;
* eine Vorlage für Team-Websites mit einer Dokumentenbibliothek, einem Kalender, einem Diskussionsforum, einer Ankündigungs- und einer Aufgabenliste;
* eine Vorlage für Dokumenten-Arbeitsbereiche mit einer Bibliothek für Haupt- und Begleitdokumente, einer Aufgabenliste und einer Hyperlinkliste für Links zu einschlägigen Ressourcen;
* mehrere Vorlagen für Besprechungsarbeitsbereiche zum Verwalten von Dokumenten, Teilnehmern, Entscheidungen und gegebenenfalls Bildern einer Besprechung;
* eine Vorlage für Blog-Websites.

Mit SharePoint Server kommen eine Reihe weiterer Vorlagen hinzu, darunter:

* eine Vorlage für Veröffentlichungs-Sites mit erweiterten Gestaltungsmöglichkeiten, erweiterten Suchfunktionen und Unterseiten für Willkommensseite, Artikelseiten und Pressemitteilungen;
* eine Vorlage für Unternehmenswikis;
* Vorlagen für Presseerklärungen und Nachrichten;
* eine Vorlage für ein Unternehmens-Suchcenter;
* eine Vorlage für Visio-Prozess-Repositorys.

Diesen Vorlagenkatalog können Entwickler oder Anwender mit entsprechenden Rechten um eigene Vorlagen erweitern. Ferner können Anwender, entsprechende Rechte vorausgesetzt, vorgegebene Websites umgestalten:

* Sie können Unter-Websites zu einer vorhandenen Website anlegen.
* Sie können einzelne Seiten innerhalb einer Website anlegen.
* Sie können Bibliotheken, Wikis und Listen aller Art hinzufügen.
* Sie können bestimmen, wie und wo diese Inhalte auf dem Bildschirm dargestellt werden sollen.

Für die Organisation der Inhalte auf einer Seite sind drei Grundtypen von Seiten vorgesehen:

* Webpartseiten, in denen hauptsächlich Anwendungselemente, Bibliotheken und Listen gruppiert werden. Diese Anwendungselemente werden in SharePoint-spezifische Inhaltselemente, sogenannte Webparts, verpackt. Das Verhalten und die Anzeige von WebParts auf einer Seite kann der Anwender in einem gewissen Rahmen beeinflussen.
* Wiki-Inhaltsseiten, die überwiegend der Darstellung von Text, Bildern, Tabellen und Hyperlinks dienen. Auch auf Wiki-Inhaltsseiten können in SharePoint 2010 WebParts eingebunden werden.
* Veröffentlichungsseiten, die hauptsächlich in Portalen und öffentlichen Internetanwendungen verwendet werden. Sie sind für Situationen vorgesehen, in denen vollständige Kontrolle über das Aussehen und die Bedienung der Seite erwünscht ist. Im Gegensatz zu Webpart- und Wikiseiten sind Veröffentlichungsseiten nur in der Server-Edition und nicht in der Foundation verfügbar.

### Communities

Unter dem Begriff Communities fasst Microsoft Funktionen zusammen, die die Kommunikation zwischen Personen erleichtern und soziale Netzwerke in Unternehmen unterstützen. Darunter fallen Wikis, Blogs, soziales Tagging, persönliche Websites und Nutzerprofile.

Die Anwendungen Meine Website und Mein Profil sind die zentralen Dienste für diesen Bereich. Unter Meine Website kann jeder Nutzer persönliche Informationen ablegen, beispielsweise der eigene Kalender oder das eigene Postfach, und eigene Dokumente, Bilder und Medien ablegen und anderen zur Verfügung stellen. Auch einen persönlichen Blog und Unter-Websites kann der Benutzer anlegen. Ein Benutzerprofil ergänzt diese Angaben. Daten wie Telefon, E-Mail und Abteilung werden meist aus dem Active Directory importiert. Der Nutzer kann diese Angaben beispielsweise um seine Fachkenntnisse oder ein Foto ergänzen.

Aus diesen Informationen kann sich der Nutzer sein persönliches soziales Netzwerk innerhalb seiner Organisation zusammenstellen. Über einen Newsfeed kann er sich über Aktivitäten in diesem Netzwerk auf dem Laufenden halten. Ein Organisations-Browser zeigt ihm die Position jeder Person im Organigramm der Organisation. Mit einer Pinnwand-Funktion kann er kurze Notizen und Fragen auf den Profilen anderer hinterlassen.

### Content

Wie in einem klassischen Dokumentenmanagementsystem können in SharePoint Dokumente versioniert und mit Metadaten angereichert werden. Sie können ein- und ausgecheckt werden, und Sichtungs- und Freigabeprozesse für Dokumente können eingerichtet werden. Über Web-Feeds oder E-Mail-Benachrichtigung können sich Nutzer informieren lassen, sobald Inhalte einer Bibliothek, einer Liste oder eines Dokuments geändert werden.

Wenn ein Nutzer ein Dokument auscheckt, dann bietet SharePoint ihm an, das Dokument in seinem Entwurfsordner auf seiner lokalen Festplatte zu speichern. So kann der Nutzer das Dokument bearbeiten, auch wenn er nicht mit dem SharePoint-Server verbunden ist. Noch weiter gehende Möglichkeiten, Dokumente offline zu halten und zu synchronisieren, bietet SharePoint Workspace 2010. Dieses Produkt ermöglicht, komplette Bibliotheken und Listen lokal zu halten und mit SharePoint zu synchronisieren. SharePoint Workspace 2010 ist das Nachfolgeprodukt von Microsoft Office Groove. Es ist in Microsoft Office 2010 Professional Plus enthalten, kann aber auch separat erworben werden. Für mobile Endgeräte ist SharePoint Workspace Mobile vorgesehen. Damit können SharePoint-Inhalte vom Smartphone aus durchsucht, mit den Office-Mobile-Programmen bearbeitet und, sobald wieder eine SharePoint-Verbindung vorhanden ist, synchronisiert werden.

Zentral verwaltete Inhaltstypen unterstützen die Klassifizierung der Dokumente. Jeder Inhaltstyp kann mit einer Vorlage verbunden werden. Zu jeder Dokumentenbibliothek können die Inhaltstypen aus dem Gesamtkatalog ausgewählt werden, die in dieser Bibliothek sinnvoll verwendbar sind. Beim Erstellen eines neuen Dokuments werden automatisch die verfügbaren Vorlagen angeboten.

Alle diese Funktionen sind direkt aus den Microsoft-Office-Anwendungen heraus verfügbar.

In der Server-Edition sind weitere Funktionen verfügbar, die regelkonformes Lenken von Dokumenten unterstützen. Aufbewahrungspflichtige Dokumente können als Datensatz deklariert werden. Ab diesem Moment ist sichergestellt, dass – im Sinne der ISO 15489 – innerhalb der gesetzlichen Frist keine Änderung oder Löschung dieser Dokumente stattfindet.

Mittels Informationsverwaltungsrichtlinien können Aufbewahrungsfristen definiert werden. So kann beispielsweise festgelegt werden, dass ein Dokument einen Monat nach Erstellung automatisch als Datensatz deklariert und zehn Jahre später automatisch gelöscht wird.

Auch als Web-Content-Management-System lässt sich SharePoint einsetzen. SharePoint Server erfüllt folgende Anforderungen:

* Trennung von Inhalt und Layout;
* Bereitstellung von Vorlagen;
* zeitgesteuertes Veröffentlichen von Inhalten;
* automatisches Bereitstellen von Inhalten aus einem Autoren- in ein Publikationssystem;
* Freigabeprozesse für Inhalte.
* SharePoint-Webseiten sind barrierefrei; sie erreichen Level 2.0 AA der Web Content Accessibility Guidelines.
* Das Caching einzelner Seiten lässt sich gezielt anpassen.

### Search

In der Grundeinstellung enthalten SharePoint-Seiten ein einfaches Suchfeld rechts oben. Gibt man dort einen Suchbegriff ein, so wird eine Volltextsuche durchgeführt.

Bereits in der SharePoint Foundation werden die Elemente indiziert, und es können eigene Server für die Suche bereitgestellt werden. Die Inhalte können ohne großen Aufwand indiziert und rasch gefunden werden. Die Suche ist jedoch auf die Websitesammlung beschränkt, in der der Benutzer sich bewegt.

In der Server-Edition kommt eine Reihe weiterer Möglichkeiten hinzu:

* Mittels Ergebnisverfeinerung kann das Suchergebnis sukzessive eingeschränkt werden.
* Benutzer können Suchen fest definieren und sich mittels E-Mail oder Web-Feed über neue Suchergebnisse benachrichtigen lassen.
* Die Funktion Automatische Suchvorschläge zeigt eine Reihe von Vorschlägen an, während der Anwender einen Suchbegriff eingibt.
* Die Darstellung und die Eingrenzung der Suchergebnisse kann modifiziert werden.
* Personen können gezielt mittels personenbezogener Merkmale gesucht werden.
* Die Suche kann auf Suchbereiche außerhalb der eigenen Websitesammlung ausgedehnt werden.

Mit dem FAST-Server für SharePoint kann Suchleistung und -Komfort noch weiter verbessert werden. Für kleine Organisationen, die nur die SharePoint Foundation einsetzen, bietet der Microsoft Search Server eine Möglichkeit, die Suchleistung zu steigern. In Verbindung mit SharePoint Server ist der Search Server nicht geeignet, da SharePoint Server alle Funktionen von Search Server umfasst.

### Composites

Unter diesem Sammelbegriff fasst Microsoft die Möglichkeiten zusammen, Anwendungen in SharePoint zu entwickeln, ohne dass dazu Code in einer Programmiersprache wie C# oder Visual Basic geschrieben werden muss:

* Mit den SharePoint Access Services können in Microsoft Access entwickelte Anwendungen als mehrbenutzerfähige Webanwendungen in SharePoint betrieben werden.
* Mit dem SharePoint Designer lassen sich Layouts anpassen, Workflows definieren, und Verbindungen zu externen Datenquellen herstellen.
* Mit InfoPath können Formulare für Webanwendungen gestaltet werden und einfache Geschäftsprozesse abgebildet werden. Eingabeformulare für SharePoint-Listen können mit dem InfoPath-Designer bearbeitet und mit Regeln und Überprüfungen angereichert werden.
* Mit den Business Connectivity Services von SharePoint können Daten aus Geschäftssystemen in SharePoint einbezogen und dargestellt werden.

### Insights

Unter dem Begriff Insights fasst Microsoft die Business-Intelligence-Komponenten von SharePoint zusammen. Dazu gehören:

* Die Excel Services, mit deren Hilfe sich Excel-Arbeitsblätter und Diagramme direkt in die SharePoint-Oberfläche integrieren lassen.
* Spezielle Listen und Webparts für die Aufbereitung grafischer Leistungsindikatoren, Key Performance Indicators.
* Ein Chart-Webpart mit einem Assistenten, der die Anwender bei der Erstellung von Grafiken unterstützt.
* Die Möglichkeit, SharePoint-Listen als Datenquelle im Microsoft SQL Server zu nutzen.
* Die Microsoft PerformancePoint-Dienste wurden in SharePoint integriert und ersetzen den PerformancePoint Server, der als eigenständiges Produkt nicht mehr weiterentwickelt wird. Mit dieser Komponente lassen sich Dashboards gestalten und erstellen.

## Browser-Kompatibilität

### Stand 2012 (SharePoint 2013)

Volle Browserunterstützung garantierte Microsoft per 2012 nur für die 32-Bit-Versionen von Microsoft Internet Explorer ab Version 7 sowie (eingeschränkt) für die Windows-Versionen von Mozilla Firefox und Google Chrome. Andere Browser funktionieren in den meisten Fällen, dies wird jedoch von Microsoft nicht gewährleistet.

Auch mit Firefox und Chrome gab es jedoch Einschränkungen, darunter:

* Die Datenblattansicht von Listen funktioniert nicht.
* Mehrfachupload von Dateien funktioniert nicht.
* Ziehen und Ablegen funktioniert nicht.
* Die Funktionen Verbindung mit Outlook herstellen, Verbindung mit Office herstellen und Mit SharePoint-Arbeitsbereich synchronisieren funktionieren nicht.
* Die Integration von Microsoft InfoPath 2010 funktioniert nicht.
* Die Funktion Microsoft-Visio-2010-Diagrammerstellung funktioniert nicht.
* Signieren von Formularen funktioniert nicht.
* Die Integration von Microsoft PowerPoint und die Funktion Folienbibliothek funktionieren nicht.

Dies liegt daran, dass diese Funktionen an ActiveX-Steuerelemente gebunden sind, die nur in den 32-Bit-Versionen des Internet Explorers verfügbar sind. Auch die Einschränkungen in den 64-Bit-Versionen des Internet Explorers liegen an fehlenden ActiveX-Steuerelementen. Auch auf 64-Bit-Installationen von Windows wird jedoch die 32-Bit-Version des Internet Explorers zur Verfügung gestellt und kann alternativ zur 64-Bit-Version verwendet werden.

### Stand 2017 (SharePoint 2016)

Seitens Microsoft werden – ausgenommen von Funktionen, die noch auf ActiveX basieren – folgende Browser unterstützt:

* Desktop: Microsoft Edge, Microsoft Internet Explorer 10 und 11, Google Chrome (letzte veröffentlichte Version), Mozilla Firefox (letzte veröffentlichte und unmittelbar vorhergehende Version) sowie Apple Safari (letzte veröffentlichte Version).
* Mobil: Internet Explorer und Microsoft Edge unter Windows Phone 8.1 oder höher, neueste Version von Chrome unter Android 4.4 oder höher, neueste Versionen von Safari und Chrome unter iOS 8 oder höher.

## Architektur und Administration

### Betriebssystem, Datenbank und Server

Die kleinstmögliche Installation für SharePoint Server 2010 besteht aus einer einzigen Servermaschine. Auf dieser werden sämtliche SharePoint-Funktionen, die 64-Bit-Version des Server-Betriebssystems Microsoft Windows Server 2008/R2 und ein Microsoft SQL Server bereitgestellt. Mit einer solchen Installation lassen sich Evaluierungen durchführen und nicht-kritische Lösungen für bis zu ca. 100 Anwender betreiben.

Als Entwicklungssystem lässt sich SharePoint Foundation 2010 sogar auf einem Arbeitsplatzrechner unter den 64-Bit Versionen von Windows 7 oder Vista SP1/SP2 betreiben. Microsoft nennt dafür als Mindestanforderungen einen 64-Bit-Dual-Core-Prozessor mit 3 GHz Taktfrequenz sowie 4 GB Arbeitsspeicher. Für SharePoint Foundation 2013 ist ein Server erforderlich. Mittels Hyper-V kann dieser virtuell auch auf einem Arbeitsplatzrechner betrieben werden, sofern dieser ausreichend ausgestattet ist.

Für größere, skalierbare Installationen muss eine Serverfarm eingerichtet werden. Man gruppiert dazu die benötigten Dienste in Schichten: eine Datenbank-, eine Anwendungs- und eine Front-End-Schicht. Abhängig von der erwarteten oder gemessenen Last werden die benötigten Dienste und Anwendungen auf die Server verteilt. Mit solchen Farmlösungen können

* Redundanz und damit Ausfallsicherheit der Dienste geboten werden;
* bis zu einigen zehntausend Anwender bedient werden, die einige Dutzend Anfragen pro Sekunde erzeugen;
* auf ein maximales Datenvolumen von 1 bis 2 Terabyte zugegriffen werden.

Für noch höhere Anforderungen gruppiert man die Dienste in geeigneter Weise, beispielsweise nach Applikationen, Publikationsdiensten, Kollaborationsdiensten und Abteilungsdiensten, und richtet für jeden dieser Dienste eine eigene Serverfarm ein. Diese Einzelfarmen gruppiert man dann zu einer Gesamtinstallation.

### Berechtigungen

Berechtigungen werden in SharePoint über Gruppen zugeteilt. Einzelpersonen bekommen ihre Rechte im Regelfall über die Mitgliedschaft in einer geeigneten Gruppe. In der Grundeinstellung besitzt jede SharePoint-Website drei Gruppen: Besitzer, Mitglieder, und Besucher. Besitzer einer Website haben alle administrativen Rechte über die Site. Mitglieder können Inhalte verfassen und ändern. Besucher haben nur Lesezugriff. Daneben stellt SharePoint noch einige andere administrative Gruppen zur Verfügung; zudem können weitere Gruppen mit differenzierteren Rechten eingerichtet werden. Die Berechtigungsgruppen gelten jeweils nur innerhalb einer Websitesammlung.

Den Berechtigungsgruppen übergeordnet sind folgende administrative Rollen:

* Websitesammlungsadministratoren haben umfassende Rechte innerhalb einer Websitesammlung. Sie können dort neue Websites und andere Inhalte erzeugen, Anwendungen aktivieren, und Berechtigungen delegieren.
* Diesen übergeordnet sind die Farmadministratoren. Diese können in der gesamten SharePoint-Farm diese Aufgaben wahrnehmen. Der Hauptteil ihrer Arbeit konzentriert sich jedoch in der globalen Konfiguration der Serverfarm, der Bereitstellung von globalen Anwendungen und Diensten und der Wartung der Serverfarm.

Berechtigungen werden innerhalb der Hierarchie der Inhalte vererbt: Einer Unterwebsite sind in der Grundeinstellung dieselben Berechtigungsgruppen zugeordnet wie ihrer übergeordneten Website. Diese Berechtigung vererbt sich weiter über Bibliotheken und Listen bis zu den einzelnen Dokumenten und Inhaltselementen. Die Vererbung kann jedoch unterbrochen werden, wenn für ein Element auf einer unteren Stufe eingeschränkte oder differenziertere Berechtigungen erforderlich sind. Auch das Recht, Rechte zu verwalten, kann so von einer übergeordneten Website auf eine untergeordnete Ebene delegiert werden. Für die Sicherheit der Inhalte einer solchen dezentral administrierten Website sind die jeweiligen Websiteadministratoren verantwortlich.

Dieses Prinzip der Vererbung und Delegation kann jedoch zu schwer durchschaubaren Abhängigkeiten führen. Dies wird dadurch erschwert, dass unter SharePoint weniger Instrumente zur automatischen Verwaltung von Rechten zur Verfügung stehen als beispielsweise im Windows-Dateisystem. Es kann im Einzelfall mühsam werden, festzustellen, welche Personen welche Berechtigungen an einem bestimmten Objekt haben. Wenn eine Person die Rolle im Unternehmen wechselt, sollten die Rechte, die mit ihrer alten Rolle verbunden sind, erlöschen. Dazu kann es notwendig werden, sie aus einer Vielzahl von Gruppen, verteilt über mehrere Websitesammlungen, zu entfernen. Mit den Bordmitteln von SharePoint ist dies sehr mühsam. Abhilfe schaffen hier Zusatzprodukte von Drittanbietern.

### Authentifizierung

SharePoint unterstützt folgende Authentifizierungsverfahren:

* Basis-Authentifizierung: Der Nutzer muss sich am Web-Frontend mit Namen und Kennwort anmelden. Diese Methode sollte nur in Verbindung mit dem SSL-Protokoll verwendet werden, damit die Anmeldeinformationen verschlüsselt übertragen werden.
* Digestauthentifizierung: eine Art Challenge-Response-Verfahren, bei der der Server eine Zufalls-Zeichenfolge an den Browser sendet. Dieser berechnet aus dieser Zeichenfolge in Verbindung mit Benutzernamen, Kennwort, HTTP-Methode und angefordertem URI eine Antwort und schickt sie zur Überprüfung an den Server zurück. Das Verfahren ist für Replay-Angriffe anfällig, bietet jedoch abgesehen davon eine Grundsicherheit und lässt sich universell einsetzen.
* Zertifikatsbasierte Authentifizierung, bei der der Webserver vom Clientrechner ein Zertifikat anfordert. Anhand dieses Zertifikats ordnet er den Clientrechner einem Benutzerkonto zu.
* Forderungsauthentifizierung mithilfe der Windows Identity Foundation oder mithilfe der Active Directory Federation Services.
* Die NTLM-Authentifizierung von Windows. Bei dieser Methode ist Single Sign-on möglich: SharePoint kann die Informationen aus der Windows-Anmeldung verwenden, um den Nutzer zu identifizieren.
* Windows-Authentifizierung in Verbindung mit Kerberos. Auch bei dieser Methode ist Single Sign-On möglich.

Ferner unterstützt SharePoint anonyme Benutzer. Es ist möglich, in einer SharePoint-Installation unterschiedliche Authentifizierungsverfahren für unterschiedliche Zonen einzurichten. So kann beispielsweise erreicht werden, dass im Intranet die Nutzer mittels Windows-Authentifizierung in Verbindung mit Kerberos identifiziert werden, während sie sich im Internet mittels Digestauthentifizierung ausweisen müssen.

### Administrationswerkzeuge

Im SharePoint ist eine Website namens SharePoint-Zentraladministration enthalten, mittels der ein Farmadministrator interaktiv alle Verwaltungs- und Überwachungsarbeiten erledigen kann. Sie umfasst:

* Die Anwendungsverwaltung, mit der Webanwendungen verwaltet, modifiziert und erstellt werden können und mit der Webanwendungen, Websitesammlungen und Inhaltsdatenbanken erstellt werden können,
* Die Überwachung mit Werkzeugen zum Überwachen der Farm und zur Analyse von Fehlern.
* Den Bereich Sicherheit, in dem die administrativen Konten und die Dienstkonten der Farm verwaltet werden.
* Allgemeine Anwendungseinstellungen mit Funktionen zur Verwaltung des Websiteverzeichnisses, der Suchdienste, der Inhaltsbereitstellungsmerkmale und der InfoPath-Formulardienste.
* Den Bereich Systemeinstellungen zur Verwaltung der Server in einer Farm und ihrer Eigenschaften.
* Den Bereich Sichern und Wiederherstellen für die Datensicherung und die Notfall-Wiederherstellung.
* Den Bereich Upgrade und Migration, in dem Updates und Upgrades verwaltet und überprüft werden können.
* Den Konfigurations-Assistenten, mit dessen Hilfe eine SharePoint-Farm interaktiv von Grund auf neu konfiguriert werden kann.

Alternativ dazu können Administrationsaufgaben mithilfe der Windows PowerShell wahrgenommen und automatisiert werden. SharePoint enthält Bibliotheken, die diese Befehlsshell um spezifische Anweisungen erweitert, die das Verwalten einer SharePoint-Serverfarm erleichtern.

## Gestalten und entwickeln in SharePoint

### Layout und Design anpassen

Das Erscheinungsbild von SharePoint lässt sich umfassend verändern – so weitgehend, dass Anwender nicht mehr sehen, dass es sich um SharePoint handelt. Die Gestaltung kann den Vorgaben eines Unternehmens-Designs angepasst werden.

Allerdings beruht das Erscheinungsbild von SharePoint auf dem Zusammenwirken mehrerer Komponenten. Die Abhängigkeiten sind komplex. Für tiefgehende Änderungen sind Zeit und Wissen erforderlich.

Folgende Komponenten wirken zusammen:

* Designvorlagen:
* die Masterseiten;
* die CSS-Core-Datei;
* individuell gestaltete CSS-Modifikationen;

Designvorlagen bieten die einfachste Möglichkeit, Farben und Schriftbild zu konfigurieren. Im SharePoint ist eine Reihe von vorgegebenen Vorlagen enthalten. Dieser Vorlagenkatalog kann um eigene Vorlagen erweitert werden. Design-Vorlagen können mit PowerPoint (sic) erstellt und modifiziert werden. Sie werden in Microsoft-Office-Design-Dateien mit der Erweiterung .thmx gespeichert.

Masterseiten bestimmen die Anordnung der Komponenten auf einer SharePoint-Seite. Sie sind nichts SharePoint-spezifisches, sondern werden generell in .NET verwendet. CSS-Dateien bestimmen das Aussehen und teilweise auch das Verhalten dieser Komponenten. Die Masterdatei von SharePoint 2010 im Auslieferungszustand heißt v4.master. Die CSS-Core-Datei, die alle CSS-Vorgaben enthält, heißt im Auslieferungszustand corev4.css. SharePoint-Experten raten davon ab, diese Dateien direkt zu modifizieren, denn:

* Falls Microsoft im Rahmen eines Service Packs die Dateien überschreibt, können Änderungen verlorengehen.
* Wenn man beim Ändern einen Fehler macht, kann die gesamte Benutzeroberfläche unbrauchbar werden. Es ist dann gut, auf eine Master- bzw. Coredatei im Originalzustand zurückgreifen zu können.

Deshalb legt man sich eine Kopie der v4.master an, fügt diese dem Katalog der verfügbaren Masterdateien hinzu, und wählt sie als Mastervorlage für die betroffene Website oder Websitesammlung aus. Diese Kopie modifiziert man mit dem SharePoint Designer.

Die corev4.css ist mithilfe einer Anweisung (Direktive) in die Masterdatei eingebunden. Es ist möglich, diese Datei zu kopieren, zu modifizieren, und die Direktive in der Masterdatei so zu ändern, dass sie auf die neue CSS-Datei verweist. Die corev4.css ist jedoch sehr umfangreich; zur besseren Übersicht rät der Fachautor Ulrich Boddenberg dazu, eigene kleinere CSS-Dateien anzulegen, in der nur die Elemente enthalten sind, die modifiziert werden müssen. Diese Dateien können über zusätzliche Direktiven so in die Masterdatei eingebunden werden, dass die Definitionen dort ihre Entsprechungen aus der corev4.css ersetzen.

### Programmierung von Anwendungen

Aus Sicht des Entwicklers ist SharePoint eine Sammlung von Bibliotheken, Klassen, Steuerelementen und Werkzeugen im Rahmen von ASP.NET. SharePoint erweitert ASP.NET 3.5 SP1; ASP.NET 4.0 wird nicht unterstützt.

Häufige Arbeitsgebiete der SharePoint-Programmierung sind:

* Die Entwicklung von Webparts. Neben einfachen Formularwebparts sind verbindungsfähige Webparts möglich, die sich gegenseitig beeinflussen. Mittels der AJAX-Unterstützung von ASP.NET können Webparts programmiert werden, die dynamisch auf Benutzereingaben und Ereignisse reagieren, ohne dass gesamte Seiten neu geladen werden müssen. Auch die Leistungsfähigkeit verbindungsfähiger Webparts lässt sich mittels AJAX verbessern. Auch Microsoft-Silverlight-Anwendungen und andere Nicht-SharePoint-Anwendungen können in Webparts eingebunden werden. Falls diese Anwendung extern, außerhalb der Domäne der Serverfarm, gehostet wird, ergibt sich eine komplexe Sicherheitslage. In Form von sogenannten externen Anwendungsanbietern (external application provider, EAP) stellt Microsoft eine Technik zur Verfügung, die versucht, den Sicherheitserfordernissen einer solchen Lösung gerecht zu werden.
* Modifizieren der Benutzeroberfläche, unter anderem durch Ändern der Menübänder, durch programmgesteuertes Bereitstellen von Bildern, Galerien und anderen Medienelementen und durch Steuerung von Statusleiste und Infobereich.
* Programmgesteuertes Definieren und Bereitstellen von Daten.
* Programmgesteuerte Entwicklung von Feldern und Feldtypen. So ist es beispielsweise möglich, Felder zu entwerfen, deren Inhalt bei jeder Verwendung überprüft wird, ohne dass dies in jedem Formular oder WebPart eigens programmiert werden muss. Auch Felder, die immer eine bestimmte Gliederung haben, beispielsweise die Kreditkartennummer oder die Internationale Bankkontonummer (IBAN)
* Programmierung ereignisgesteuerter Anwendungen. Die Ereignisse werden beispielsweise durch Änderungen an Inhalten, durch Empfang bestimmter E-Mails, oder durch Ereignisse innerhalb von Workflows ausgelöst.
* Programmgesteuerte Verwaltung von Dokumenten.
* Programmgesteuerte Erzeugung und Verwendung von Vorlagen für Websites, Bibliotheken und Listen.
* Programmierung der Suchfunktionen.
* Im Rahmen der Business Connectivity Services Zugriff auf externe Datenbanken, benutzerdefinierte Konnektoren und SOAP- und WCF-Dienste.

Unter SharePoint Foundation 2010 und 2013 ist es möglich, Anwendungen als Dienste zu gestalten. Diese Dienste können innerhalb einer SharePoint-Farm oder sogar über mehrere Farmen hinweg Funktionen und Ressourcen zur Verfügung stellen.

Die wesentlichen Klassen des SharePoint-Server-Objektmodells liegen in den Namensräumen, die mit Microsoft.SharePoint.* oder Microsoft.Office.* beginnen. SharePoint-Klassen haben meist einen Namen, der mit SP beginnt. Für Webpart-Anwendungen enthalten die Namensräume System.Web.UI.Web.WebControls und System.Web.UI.Web.WebControls.WebParts einschlägige Klassen. Die zentralen Klassen und ihre Hierarchie sind im Diagramm rechts dargestellt.

Zur Programmierung in SharePoint können die meisten .Net-Sprachen verwendet werden. Entwicklungswerkzeug der Wahl ist Microsoft Visual Studio ab Version 2010. Dort stehen Vorlagen für unterschiedliche Typen von SharePoint-Projekten sowie Vorlagen für unterschiedliche Inhaltselemente zur Verfügung. Unabhängig davon, mit welcher Vorlage begonnen wird, kann das Projekt durch Hinzufügen weiterer Elemente beliebig erweitert werden.

Der programmtechnische Zugriff auf SharePoint-Listen und ihre Elemente ist mittels CAML-Abfragen möglich. LINQ to SharePoint bietet eine alternative, typensichere Methode für denselben Zweck. Zudem bietet LINQ den Vorteil, dass aus der Programmiersprache heraus mit einheitlichen Methoden auf unterschiedliche Datenquellen zugegriffen wird – seien es SharePoint-Listen, XML-Dateien, SQL-Tabellen, Excel-Tabellen und vieles mehr. Damit man auf SharePoint-Listen mittels LINQ zugreifen kann, muss man zuvor mithilfe des mit SharePoint gelieferten Programms SPMetal.exe ein Objektmodell dieser Listen erstellen und in das betreffende SharePoint-Projekt einbinden.

CAML kann auch dazu verwendet werden, um Felder in Webparts und Formularen darzustellen (zu rendern). Diese Möglichkeit besteht in SharePoint 2010 hauptsächlich zwecks Kompatibilität mit früheren SharePoint-Versionen. Die Methode der Wahl, um Felder in SharePoint 2010 zu rendern, ist die Verwendung von XSLT. SharePoint unterstützt spezialisiertes Feldrendering für mobile Geräte; neben der Möglichkeit, dies selbst zu gestalten, stellt SharePoint eine Reihe von vorgefertigten Rendervorlagen für mobile Geräte zur Verfügung.

### Entwickeln von Workflows

Als generelles Werkzeug für die Entwicklung von Workflows in .NET dient die Windows Workflow Foundation. SharePoint 2010 nutzt dieses Werkzeug; allerdings nicht die aktuelle (Stand 2012) Version 4.0, sondern Version 3.5. Somit kann der SharePoint-Entwickler den Funktionsumfang der Workflow Foundation nutzen; unter anderem kann er:

* sowohl einfache sequenzielle Workflows entwerfen, als auch komplexere Zustandsautomaten-Workflows, die Bedingungen und Verzweigungen zulassen;
* für die Codierung der Workflows kann man zwischen XAML-Code oder herkömmlicher Codierung in einer der .NET-Programmiersprachen wählen.

Als Alternative zur Programmierung in Visual Studio steht im SharePoint Designer der Workflow Designer zur Verfügung, mit dem sich Workflows grafisch modellieren lassen. In der Enterprise-Edition von SharePoint kann der Workflow-Entwickler zudem Microsoft Visio verwenden, um sich Workflows und deren Status anzeigen lassen. Mit der Visio 2010 Premium Edition kann er Workflows für den SharePoint entwerfen und vorhandene SharePoint-Workflows modifizieren.

SharePoint Server 2010 bietet sieben vordefinierte Workflows, die als Vorlage oder direkt ohne Anpassung verwendet werden können. Die SharePoint Foundation bietet lediglich eine Vorlage für einen einfachen sequenziellen Workflow mit drei Zuständen.

Zusätzliche Funktionalität beim grafischen Entwurf von Workflows bietet der Drittanbieter Nintex mit seinem Produkt Nintex Workflow.

### Sandkasten-Lösungen

Bis zur Version 2007 wurden SharePoint-Anwendungen stets auf der Ebene der Serverfarm bereitgestellt. Die Anwendungen haben somit Zugriff auf die Serverobjekte der obersten Ebene. Eine fehlerhaft programmierte Anwendung ist in der Lage, einen kompletten SharePoint-Betrieb lahmzulegen, indem sie ein kritisches Serverobjekt funktionsunfähig macht. Auch durch übermäßigen Ressourcenverbrauch kann eine Anwendung auf Serverebene den Betrieb außer Gefecht setzen.

Mit SharePoint Foundation 2010 führte Microsoft deshalb sogenannte Sandkastenlösungen ein. Diese werden nicht mehr auf der Ebene der Serverfarm, sondern auf Websitesammlungen implementiert. Solche Anwendungen können nur noch die Websitesammlung außer Betrieb setzen, aber nicht mehr die gesamte Farm. Auch dem übermäßigen Ressourcenverbrauch kann begegnet werden, weil es möglich ist, genau festzulegen, welche Ressourcen eine Websitesammlung maximal in Beschlag nehmen darf.

Mit SharePoint 2013 wurden serverseitige Sandkastenlösungen wieder abgekündigt. Stattdessen empfiehlt Microsoft das neue App-Modell von SharePoint 2013.

### SharePoint-Add-ins

Mittels Add-ins können Entwickler SharePoint-Erweiterungen bereitstellen, die mit eingeschränkten Rechten auf die Serverumgebung zugreifen. Gleichzeitig fügen sie sich in die Cloud-Strategie von Microsoft. Es gibt sie in drei Ausprägungen:

* Add-ins, die eine ganze Seite mit einer vollständigen Benutzeroberfläche zur Verfügung stellen.
* Add-ins, die Inhalte in einem IFrame innerhalb einer übergeordneten Seite wiedergeben.
* Add-ins, die die Nutzeroberfläche des SharePoints modifizieren, beispielsweise Befehlsschaltflächen auf einem Menüband.

Drei Hostingmodelle stehen zur Verfügung:

* Hosting innerhalb einer SharePoint-Site innerhalb eines sogenannten Add-in-Web.
* Autohosting auf Windows Azure.
* Hosting bei einem Provider.

Add-ins kommunizieren mit dem SharePoint über dessen Client-Objektmodell und über eine neue REST-API, die mit SharePoint 2013 zur Verfügung gestellt wurde. Solche Programme können in vielen Programmiersprachen geschrieben werden; die Bandbreite umfasst .NET-Sprachen, aber auch gängige Web-Sprachen wie PHP und Java, die nicht von Microsoft entwickelt wurden.

SharePoint Apps wurden von Microsoft in SharePoint-Add-ins umbenannt.

### Clientseitige Techniken

Vor SharePoint 2010 war clientseitige Programmierung von SharePoint-Anwendungen mühsam, weil Microsoft dafür nur die sperrigen WebDAV- und ASMX-Webdienste zur Verfügung stellte. Clientseitige Programmierung bietet jedoch hohe Flexibilität in der Gestaltung der Benutzeroberfläche. Zudem sind oft die Antwortzeiten besser, weil weniger Daten zwischen Client und Server übertragen werden müssen. Ab SharePoint 2010 stellt Microsoft eine umfangreiche Klassenbibliothek für den clientseitigen Zugriff auf das Server-Objektmodell in einem WCF-Dienst zur Verfügung.

Die Methoden des Clientmodells nehmen XML-Anforderungen entgegen und schicken JSON-Antworten zurück. Die Architektur des Modells ist in SharePoint 2013 im Wesentlichen die gleiche wie in SharePoint 2010. Es kann nicht nur in SharePoint, sondern in jeder verwalteten .NET-Anwendung eingesetzt werden, so auch unter Silverlight.

In SharePoint 2016, sowie SharePoint Online, wird die "moderne" Oberfläche in React geschrieben. Dadurch änderten sich auch die notwendigen Werkzeuge, um eigene Webparts oder Branding zu integrieren. Microsoft fasst dies unter dem Namen "SharePoint Framework" zusammen.

