In this PnP Webcast, we concentrated on demonstrating how to build self-service site collection provisioning solution using an asynchronous pattern with Azure Functions or with Azure WebJobs. This pattern is widely used in the classic SharePoint Online self-service provisioning solutions and you can easily also use this kind of pattern with the modern experiences or simply modernize the backend running in the Azure side without potentially changing settings in your existing user interface. Video and sample also demonstrate the usage of the user's personal access token while provisioning the site collection. Using this model for the access token handling, you do not need to use app-only patterns on the Azure side with high permissions to your tenant.
In general, with SharePoint Online, you can take either advantage of the out of the box site provisioning experience, which also supports extensibility options with Site Designs and Site Scripts, or you can build a custom provisioning experience. Since the Site Designs and Site Scripts capability is a new functionality, there are many customers who have already build their own self-service solutions. In general, we do recommend on utilizing the out-of-the-box Site Designs and Site Scripts, if possible from your business and functional requirement perspective. If you, however, have requirements, which cannot be met with the out-of-the-box capabilities, you can always take advantage of Azure and remote SharePoint APIs (REST, CSOM, Graph) to fulfill your requirements.
Presentation covers following discussion points:
- Business scenario for the demonstrated sample solution
- Solution architecture of the provided sample, which uses both Azure Functions and Azure WebJobs to demonstrate both options
Webcast demo shows following things:
- Solution structure and design in Visual Studio
- Demonstration of the solution user interface and end-user experience
- Azure Function processing of the provisioning requests
- Code explanation on how the requests are added to Azure Storage Queue for processing and how the sites are provisioned using PnP CSOM extensions
- Needed configuration in Azure Active Directory for the demonstrated solution
The presentation used in this webcast is available from new PnP SlideShare locations at https://www.slideshare.net/SharePointPnP.
Video on YouTube.
See following resources on the covered topics.
- Provisioning.Cloud.modern.Async sample demonstrated in the webcast demo
- SharePoint Developer Documentation
- Customizing the "modern" experiences in SharePoint Online
- Getting started creating site designs and site scripts
- Calling the PnP Provisioning Engine from a Site Script
- Azure Functions Documentation
- Run Background tasks with WebJobs in Azure App Service
What is SharePoint / Office Dev Patterns & Practices (PnP) webcast series?
SharePoint / Office Dev Patterns & Practices (PnP) webcast series covers different patterns, practices and topics around development with Office 365 and SharePoint. The majority of the topics are valid for the Office 365 and SharePoint on-premises. Our objective is to release a new webcast weekly or bi-weekly with few slides and a live demo of the covered topic. All webcasts are published at the PnP YouTube channel with additional references to the existing materials.
PnP is a community-driven open source project where Microsoft and external community members are sharing their learning's around implementation practices for Office 365 and SharePoint on-premises (add-in model). Active development and contributions happen in our GitHub repositories under dev branch and each month there will be a master merge (monthly release) with more comprehensive testing and communications. Latest activities and future plans are covered in our monthly community calls which are open to anyone from the community. Download invite from http://aka.ms/SPPnP-Call.
This is work done by the community for the community without any actual full-time people. It’s been great to find both internal and external people who are willing to assist and share their learning's for the benefit of others. This way we can build on the common knowledge of us all. Currently, the program is facilitated by Microsoft, but already at this point, we have multiple community members as part of the Core team and we are looking to extend the Core team with more community members.
If you have any questions, comments or feedback around PnP program or this blog post, please use the Microsoft Tech Community (SharePoint Developer group).
“Sharing is caring”
Vesa Juvonen, Senior Program Manager, SharePoint, Microsoft - 8th of January 2017