PnP Virtual Conference – Q&A of my session “Architecture of Custom Microsoft 365 Solutions”

First of all, thanks to all the people who attended the PnP Virtual Conference – September 2020 and specifically my session about “Architecture of Microsoft 365 Solutions.” In case you missed the session, you can find the video of the Teams Live Event at this URL.

Here I simply want to share the Q&A part of the session, so that the answers to the questions can become useful content for anybody else.

  • Q1: You said: “Try to use MS Teams as the host for your UI elements and for complex scenarios use SPFX”. Could you provide little more information why you recommend it this way?
  • A1: While defining the architecture of a Microsoft 365 solution, I usually try to define if hosting the UI in Microsoft Teams can help the adoption of the solution. In fact, nowadays most of the businesses use Microsoft Teams as the primary modern workplace tool. Having the UI of your custom solutions still offered through the UI/UX of Microsoft Teams will make your solution more usable, more friendly, and more integrated. In order to create the UI of your solutions within Microsoft Teams you can consider using SharePoint Framework (SPFx) or Yo Teams.
  • Q2: Microsoft Graph is missing lots of SPO actions, why do you suggest to use it?
  • A2: Microsoft Graph is my primary choice whenever I need to consume any of the Microsoft 365 workloads. Talking about SharePoint Online, there are some scenarios where the Microsoft Graph does not provide proper coverage (hidden lists, filtering items by content type, subwebs handling, etc.), or does not provide coverage at all (no access to system libraries, modern pages API, etc.). In those scenarios where the Microsoft Graph cannot be used, I usually fallback to the SharePoint Online REST APIs, or eventually to CSOM. Nevertheless, keep into account that the Microsoft Graph is continuously evolving, and what is missing today, might be available tomorrow. As such, Microsoft Graph is still my primary choice, whenever I can use it.
  • Q3: When would you recommend Azure Automation over Azure functions?
  • A3: Personally I rely on Azure Automation for management tasks, while I rely on Azure Functions/Logic Apps/Power Automate for business logic activities. You can read this document to have a better understanding and to compare the available options for implementing the business logic of your solutions.
  • Q4: Regardless of development, is Content Type Hub just not recommended?
  • A4: The Content Type Hub is old technology and I usually suggest avoiding it. I rather use PnP Provisioning Templates to keep in sync the content types across different sites/tenants.
  • Q5: Is there a way to share users between different tenants (DEV, TEST, PROD)? Do we need to get different licenses for different tenants?
  • A5: Unfortunately you have to buy multiple licenses. However, usually in a TEST tenant you don’t need all the licenses of a PROD tenant. Moreover, for a DEV tenant you can consider the Microsoft 365 Developer Program, through which you can get a free Microsoft 365 Developer tenant.
  • Q6: Independent of this do you use Azure VM as a DEV machine or can recommend it?
  • A6: I have some DEV machines on Microsoft Azure VM, mainly for SharePoint on-premises development tasks. On the contrary, I run all the modern client-side development on my machine with GitHub as the code repository and Azure DevOps for project management.
  • Q7: Is there any option to roll back Look Book templates?
  • A7: Unfortunately there is no automatic option to rollback the Look Book templates. You can simply manually delete the generated site collections.
  • Q8: What is the best way to provision SharePoint sites? We are using Azure Functions and provisioning based on a site template.
  • A8: I think that using Azure Functions and PnP Provisioning is a very good choice. That’s what we do in the Look Book site, too.

Thanks again for attending the PnP Virtual Conference and see you soon with future online events.