Funktionsanheftung im SharePoint-Add-In-Modell
Der Ansatz, den Sie verwenden, um Code auszuführen und Artefakte bereitzustellen, wenn eine SharePoint-Website bereitgestellt wird, ist im neuen SharePoint-Add-In-Modell anders als bei voll vertrauenswürdigem Code. In einem typischen FTC-Szenario (Full Trust Code) bzw. farm solution wurden standardmäßige Websitedefinitionen mit gehefteten Features geändert. Features wurden zum Packen und Bereitstellen von Artefakten, Konfigurationen und Brandingressourcen verwendet, die einer SharePoint-Website zugeordnet sind, und Features wurden in die Websitedefinition heftet. Anschließend wurden die gehefteten Features automatisch installiert und bei der Websitebereitstellung aktiviert.
In einem SharePoint-Add-In-Modellszenario können Sie Features heften, Add-Ins heften oder das clientseitige SharePoint-Objektmodell (Client Side Object Model, CSOM) verwenden, um Websitesammlungen und Unterwebsites zu erstellen und zu konfigurieren und dann Artefakte, Konfigurationen und Brandingressourcen bereitzustellen. Dieses Muster wird häufig als Remotebereitstellungsmuster bezeichnet.
Allgemeine Richtlinien
Als Faustregel möchten wir die folgenden allgemeinen Richtlinien bereitstellen, um Websitesammlungen und Unterwebsites zu erstellen und zu konfigurieren und dann Artefakte, Konfigurationen und Brandingressourcen für diese bereitzustellen.
- Die einzige Möglichkeit, die Feature-Heftung weiterhin zu verwenden, ist, wenn Sie Features in Websitesammlungen heften und Sandkastenlösungen verwenden, um die Websitedefinitionen und die hefterten Features bereitzustellen.
- Sie können das Add-In-Stapling-Modell mit vom Mandanten bereitgestellten Add-Ins verwenden, um Funktionen ähnlich dem Feature-Stapling zu implementieren.
- Sie können das Remotebereitstellungsmuster verwenden, um Funktionen zu implementieren, die dem Feature-Stapling ähneln, indem Sie zusätzliche Features zusätzlich zur vordefinierten Websitedefinition über Remote-APIs aktivieren.
Optionen zum Erstellen und Konfigurieren von Websitesammlungen und Unterwebsites und anschließendes Bereitstellen von Artefakten, Konfigurationen und Brandingressourcen für diese
Sie haben einige Optionen, um Websitesammlungen und Unterwebsites zu erstellen und zu konfigurieren und dann Artefakte, Konfigurationen und Brandingressourcen für diese bereitzustellen.
- Heften von Features
- Heften von Add-Ins
- Verwenden des Remotebereitstellungsmusters
Heften von Features
In diesem Muster heften Sie Features in Websitedefinitionen.
- Dieses Muster ist nur auf Websitesammlungsebene verfügbar.
- Es ist nicht möglich, Features auf Unterwebsites zu heften.
- Dies ist kein optimaler oder empfohlener Ansatz, da veraltete Sandboxlösungen verwendet werden und Sie nicht gut für Upgrades eingerichtet werden.
Wann ist die Option geeignet?
Wenn Sie Legacycode in einer lokalen SharePoint-Umgebung migrieren und keine Zeit haben, ihn ordnungsgemäß neu zu schreiben.
Erste Schritte
Im folgenden Artikel wird beschrieben, wie Sie Features in eine Websitedefinition heften.
Heften von Add-Ins
In diesem Muster stellen Sie im App-Katalog gespeicherte Add-Ins für bestimmte Websitesammlungen, verwaltete Pfade und Websitevorlagen bereit.
- Weitere Informationen zum Add-In-Stapling-Modell finden Sie unter SharePoint 2013 App Deployment through "App Stapling" (MSDN-Blogartikel – Richard DiZerega).
- Da das Add-In von einem Administrator gepusht wird, können Websitebesitzer das Add-In nicht von einer Website entfernen, die die Bereitstellungskriterien erfüllt. Nicht einmal ein Websitesammlungsadministrator kann das Add-In entfernen.
- Diese zentralisierte Bereitstellung verwendet auch dieselben zentralisierten Add-In-Ressourcen (Add-In-Web und Remoteweb). Im Wesentlichen wird das Add-In bereitgestellt, aber nicht an den Standorten installiert. Alle Websites nutzen das Add-In-Web und Remoteweb aus dem im App-Katalog installierten instance.
- Aufgrund der zentralisierten Bereitstellung werden Remoteereignisse wie "App installiert behandeln", "Handle App Uninstalled" und "Handle App Upgrade" nur einmal ausgelöst (wenn die Add-In im App-Katalog installiert ist).
- Dies kann die Verwendung des Add-In-Staplingmusters erschweren, um Änderungen automatisch auf Websites anzuwenden, auf denen es bereitgestellt wird, da diese Ereignisse nicht ausgelöst werden, wenn sie auf Websites bereitgestellt werden.
- Add-In-Teile werden nicht unterstützt, wenn Add-Ins an Websites heftet werden.
- Dieses Muster erfordert manuelle Benutzeraktionen, um die Add-Ins bereitzustellen.
Verwenden des Remotebereitstellungsmusters
In diesem Muster verwenden Sie das Client Side Object Model (CSOM) von SharePoint, um Websitesammlungen und Unterwebsites zu erstellen und zu konfigurieren und dann Artefakte, Konfigurationen und Brandingressourcen für diese bereitzustellen.
Dieses Muster erfordert keine Verpackung von Artefakten, Konfigurationen und Brandingressourcen in separaten Features oder Add-Ins. Alles kann in einem einzelnen Add-In gepackt werden.
Wenn Sie dieses Muster für die Websitebereitstellung verwenden, überschreiben Sie in der Regel die sofort einsatzbereite Seite, um eine neue Website zu erstellen.
Weitere Informationen zu diesem Muster finden Sie unter Websitebereitstellung (SharePoint-Add-In-Rezept).
Wenn Sie Add-Ins auf einer SharePoint-Website bereitstellen möchten, kann dies über CSOM erfolgen. Im folgenden Beispiel wird ein Office-Add-In über eine APP-Manifestdatei geladen und auf einer SharePoint-Website installiert.
//Create a FileStream object to access the Mail Office Add-in .app file using (FileStream fsSource = new FileStream(System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath + "Innovation.Management.AFO.app", FileMode.Open, FileAccess.Read)) { //Return the subweb where you want to install the Add-in var subweb = ctx.Web; ctx.Load(subweb); ctx.ExecuteQuery(); //Load and Install the Add-in on the subweb AppInstance appInstance = subweb.LoadAndInstallApp(fsSource); ctx.Load(appInstance); ctx.ExecuteQuery(); }
- Sehen Sie sich das Video Erstellen von in der Cloud gehosteten Branchenanwendungen mit Add-Ins für Office, O365, Azure und WP8 (Todd Baginski, Michael Sherman – SharePoint Conference 2014) an, um zu erfahren, wie dieser Ansatz zum Installieren von Office-Add-Ins auf SharePoint-Websites bei der Websitebereitstellung verwendet wurde.
- Eine vollständige Automatisierung ist nur mit Add-Ins möglich, die über vollständige Mandantenberechtigungen verfügen, die bereits als vertrauenswürdig eingestuft wurden.
- Ein Beispiel finden Sie unter Core.Sideloading (O365 PnP-Beispiel).
Verwandte Links
- Self-Service-Websitebereitstellung mit Add-Ins für SharePoint 2013 (MSDN-Blog)
- SharePoint 2013-App-Bereitstellung über "App Stapling" (MSDN-Blogartikel – Richard DiZerega)
- Websitebereitstellung (SharePoint-Add-In-Rezept)
- Erstellen von in der Cloud gehosteten Branchenanwendungen mit Add-Ins für Office, O365, Azure und WP8 (Todd Baginski, Michael Sherman – SharePoint Conference 2014)
- Leitfadenartikel unter https://aka.ms/OfficeDevPnPGuidance
- Verweise in MSDN unter https://aka.ms/OfficeDevPnPMSDN
- Videos bei https://aka.ms/OfficeDevPnPVideos
PnP-Beispiele
- Provisioning.Cloud.Sync (O365-PnP-Beispiel)
- Provisioning.SubSiteCreationApp (O365-PnP-Beispiel)
- Provisioning.Services.SiteManager (O365-PnP-Beispiel)
- Provisioning.SiteCollectionCreation (O365-PnP-Beispiel)
- Beispiele und Inhalte bei Microsoft 365 Patterns and Practices (PnP)
Gilt für
- Office 365 mit mehreren Mandanten (MT)
- Office 365 dediziert (D)
- SharePoint 2013 lokal