Direkt zum Hauptbereich

SharePoint 2013 - Gegenüberstellung Farmlösungen (Farm Solutions) und Apps

In diesem Post möchte ich auf die Möglichkeiten der Bereitstellung von benutzerdefinierten Lösungen in SharePoint 2013 eingehen. Im Gegensatz zu SharePoint 2010 ergeben sich in diesem Bereich einige Änderungen, die ich im Folgenden darstellen möchte.

In SharePoint 2010 gab es die Farmlösungen (Farm Solutions) und die Sandkastenlösungen (Sandbox Solutions). In SharePoint 2013 sind die Sandkastenlösungen veraltet, Ihr Lebenszyklus war nicht von langer Dauer, was einige Entwickler mit Sicherheit freuen wird. Die bekannten Farmlösungen wird es auch weiterhin geben, zur Freude der Administratoren :-)

Ein großes Thema im täglichen Leben sind heutzutage die Apps, jeder kennt Sie und jeder nutzt Sie. In SharePoint 2013 dürfen die Apps somit nicht fehlen. Wer sich das Thema Apps und SharePoint 2013 einmal genauer anschauen möchte findet auf Microsoft Technet die benötigten Informationen.

Soweit so gut, aber für welche Szenarien setze ich welche Lösungen ein. Im Grunde genommen kann man die Lösungen in 2 Kategorien einteilen.

Kategorie Farmlösung

Lösungen dieser Kategorie erweitern die Funktionalität einer SharePoint-Farm, einer Webseitensammlung oder auch einer einfachen Seite. Die Bereitstellung und Veröffentlichung der Farmlösungen erfolgt durch die Farm-Administratoren. Diese werden wie gewohnt über die Farmlösungen innerhalb der Zentraladministration bereitgestellt.

Beispiel Farmlösung

Wir möchten unseren SharePoint Server um eine Workflow-Engine erweitern, da wir mit den Standardmitteln des SharePoint Workflow Designers nicht zufrieden sind und die Funktionalitäten erweitern möchten. Wir entscheiden uns in diesem Fall für Nintex Workflow. Diese Lösung wird auf der Farm zur Verfügung gestellt und bietet den Anwendern/Administratoren eine Reihe an Funktionalitäten.

Kategorie Apps

Lösungen der Kategorie 2 kann man gut als Einzelgänger beschreiben. Eine App stellt die Lösung zu einem bestimmten Problem dar. Apps sind in der Regel einfach zu handhaben, da keine komplexe Funktionalität zur Verfügung gestellt wird.

Beispiel Apps


Im Intranet soll auf der Startseite die Twitter-Timeline des Unternehmens eingebunden werden. Es muss in diesem Fall keine komplexe Funktionalität bereitgestellt werden. Es wird lediglich ein Web Part als App zur Verfügung gestellt, welches sich mit dem Twitter-Account verbinden und die entsprechende Timeline anzeigen kann.

Wir wissen nun, dass wir 2 Möglichkeiten der Entwicklung von Lösungen für unsere SharePoint 2013 Farm  haben. Aber welche Unterschiede sind nun in den Lösungen vorhanden. Die folgenden Punkte liefern Euch hoffentlich einen guten Überblick.

Authentifizierung

Farmlösungen laufen gewöhnlich als Vertrauenswürdig (Full trust). Handelt es sich um ein Farm-Feature wird die Lösung in den Global Assembly Cache (GAC) geladen. Sofern es sich um ein Webanwendungsfeature handelt wird die bin-Assembly in das bin-Verzeichnis des virtuellen Servers kopiert.
Apps hingegen haben unterschiedliche Zugriffsmechanismen. Damit man die SharePoint API aus einer App heraus aufrufen kann müssen wir uns zuvor am SharePoint authentifizieren. Nutzen wir lediglich HTML, JavaScript (z.B. innerhalb von Web Parts zur visuellen Darstellung) übernimmt SharePoint die Authentifizierung. Greifen wir jedoch auf Daten zu, die außerhalb vom SharePoint liegen (z.B. Cloud-Zugriffe) wird über OAuth oder auch REST API's zugegriffen.

Unterstütze Features

Farmlösungen unterstützen eigentlich jede Funktionalität, die SharePoint abbilden kann. Wie in SharePoint 2010 bei den Sandkastenlösungen gibt es auch in SharePoint 2013 Abgrenzungen bei der App-Entwicklung. 

Die folgenden Features kann man als App bereitstellen:
  • Benutzerdefinierte Webparts (Custom Web Parts)
  • Benutzerdefinierte Seitendefinitionen (Custom site definitions)
  • Benutzerdefinierte Themes (Custom themes)
  • Benutzer-Steuerelemente (User controls)
  • Benutzerdefinierte Aktionen (Custom action groups)
  • Stellvertretungs-Steuerelement (Delegate controls)
  • Benutzerdefinierte Webservices (Custom web services)
    • diese müssen auf dem SharePoint Service Application Framework aufbauen
  • Ereignisempfänger (Event Receivers)

Diese Funktionalitäten lassen sich mit Apps nicht abbilden:

  • Zugriff auf Elemente, die nicht in derselben SharePoint-Seite liegen
  • Eine Verbindung von Apps untereinander ist nicht möglich
  • Mit Hilfe von Apps lässt sich kein SharePoint Server Seiten Code aufrufen (Server side code)
  • Anwendungsseiten (Application Pages) lassen sich nicht als App bereitstellen

Resource Allocation

Farmlösungen beinhalten keine Restriktionen bezüglich der Resource Allocation. Apps bieten den Webseitensammlungsadministratoren die Möglichkeit der Überwachung  und können die zugewiesenen Ressourcen ändern.

Ich wünsche allen ein frohes Fest und besinnliche Weihnachtstage im Kreise der Familie und Freunde.

Bis dahin,
Patrick

Kommentare

Beliebte Posts aus diesem Blog

Nutzung der Mehrsprachigkeit in SharePoint 2013

Heute wollte ich mich mit dem Thema <Mehrsprachigkeit und SharePoint 2013> auseinandersetzen. Wie in SharePoint 2010 bietet Microsoft auch diverse Sprachpakete für SharePoint 2013 an. Zum heutigen Zeitpunkt stehen Sie leider noch nicht zum freien Download bereit. Wenn Ihr jedoch eine MSDN-Subscription besitzt, so könnt Ihr die verfügbaren Sprachpakete hier herunterladen. Die folgenden Sprachpakete stehen derzeit zum Download bereit.




















Nachdem ich mir die Pakete installiert und den Config-Wizard laufen gelassen habe (Es hat keine 10 Minuten gedauert, das sieht mir nach Optimierung aus) stehen die Pakete zur Verfügung und ich kann Sie auf den einzelnen Site-Collections aktivieren. Dazu gehe ich wie gewohnt in die <Site-Settings>








und wähle dort die <Language settings> aus und markiere die gewünschte Sprache.


























Das sind alles keine Änderungen gegenüber SharePoint 2010. Meine Seite öffnet sich nun wie erwartet in Deutsch. Nun möchte ich jedoch wieder in die englische Sprache …

Benutzer einer SharePoint-Gruppe auslesen (Data One Power Activity for Nintex Workflow)

Ich habe dieser Tage ein kleines Problem mit der Nintex-Aktivität << Data Request >> gehabt. Derzeit ist es leider nur möglich dieser Aktivität einen Benutzer zuzuweisen. Was nun aber tun, wenn mehrere Benutzer diese Dateneingabe vornehmen sollen. Man kann das Ganze umgehen, indem man eine neue SharePoint-Gruppe anlegt und die Benutzer in dieser Gruppe einpflegt.
Hier bin ich dann jedoch auf das nächste Problem gestoßen. Die SharePoint-Gruppe wird nicht aufgelöst, so dass die Aufgabe nicht in den Nintex-Webpart << Meine Workflowaufgaben >> angezeigt wird. Ich habe mir nun Gedanken über eine mögliche Lösung gemacht und bin zu folgendem Ergebnis gekommen.

Schritt 1: SharePoint Webservice
Auslesen der SharePoint-Gruppe mit dem SharePoint Webservice (http://sharepoint/_vti_bin/UserGroup.asmx) und der Methode << GetUserCollectionFromGroup >>. Als Ergebnis bekommen wir folgendes XML-Konstrukt (aus Darstellungsgründen habe ich es auf den LoginName beschränk…

Aktivierung Blob Cache (Enable Blob Cache SharePoint 2013)

Heute wollte ich mich mit der neuen Funktionalität der <Image Renditions> (Bildwiedergabe) im SharePoint Server 2013 beschäftigen. Man kann den Punkt <Image Renditions> in den Site-Settings finden. Bevor ich nun jedoch Einstellungen und die Funktionalität nutzen kann erwartete mich zunächst eine Warnmeldung:

"The blob cache is not enabled in this web application. Image Renditions will not be generated until the blob cache is enabled. For information on turning on the blob cache, please review the product information."







Ich habe mich dann einmal in der Zentraladministration auf die Suche nach Einstellungen auf Webanwendungsebene für die Aktivierung des Blob Cache gemacht, bin in der GUI jedoch nicht fündig geworden. Was nun tun? Gibt es eventuell PowerShell cmdlets für SharePoint 2013 zum Aktivieren des Blob Cache. Auch hier bin ich leider nicht fündig geworden. Aber da es sich um Konfigurationseinstellungen der Webanwendung handelt so findet man diese doch bestimm…