Back from the field, this session will talk about Best Practices about using SharePoint lists as a backend for your PowerApps and PowerBI applications. Based on real situations, we will see what are the impacts of prototyping and releasing Business applications that are using SharePoint and how you will have to organize your items if you don’t want to get in huge troubles.
Step by step, we will analyze what are the different options and the risks in using a platform where people can change the data model and how to avoid that risks.
Axa Assurance Maroc - Insurer Innovation Award 2024
aMS Delhi - Are you thinking about building PowerApps on to of SharePoint-Seriously
1. 1
aMS Delhi 2022
June 25th
Are you thinking about building
PowerApps on to of SharePoint?
Seriously?
Nicolas Georgeault
2. Thanks to our SPONSORS
2
GOLD
sponsor
Organizing sponsor
3. About me
• Founder and PPM @MuBrain Inc.
• 25 years of experience in KM
• 13 years with Microsoft SharePoint
• Microsoft Specialist and Partner
• MVP for 8 years
• Machine Leaning certificate from
Stanford University
• Co-author of books about SharePoint
• Mad about Jazz music and HorseBall
4. I don’t always test my code
But when I do,
I do it in production
6. 1. Data source
• Is there only one data source?
• Are you using SharePoint Online or OnPrem?
• Do you need Data Gateway?
• Does the Data Gateway already setup?
• Do you need to mix with others sources types?
• Do you have an existing data governance?
• Are you planning to set DLP strategy?
7. SharePoint as a Data source
• Is there any lookup column?
• Are you working on the destination site or site collection?
• Is it a subsite?
• What are the sharing settings of this site?
• Is it a custom list?
• Are you using multiple SharePoint lists and requests?
• Will you use SharePoint to store pictures, videos, etc.?
8. Adapt your SharePoint hierarchy
/Applications
Communicatio
n Topic site
HUB
/App1
Communicatio
n Showcase
site
/App2
Communicatio
n Showcase
site
/App…
Communicatio
n Showcase
site
-> 50 sites limitation
Introduce application purpose
Manage corporate repository
Define the App governance
Could be dedicated to HR, OPE,
etc…
9. SharePoint recommendations
• Do not use app full name as the title for your sites
• Think about permissions on PowerApps vs SharePoint site/lists
• Build sites using PnP Framework for SharePoint
• Build your test set and publish it using PnP Framework
• Use the Showcase Communication template to announce updates
• Use centralized Personas from Corporate Repo
• Use the Showcase site to store app related content and Links to
Stream channel
• Try to avoid Delegation as more as possible
10. Data Gateway
• What is the network latency between sources and PApps service?
• Are you using a dedicated gateway?
• Do you need Gateway Clustering?
12. 2: Data model
• Do you have a Data Model?
• Do you already have a Naming convention?
• Do you plan to manipulate BLOBs like images, videos, audios, … etc?
• Are you reviewing regularly the Data model?
• Do you need a Common Data Model between apps?
• How to maintain and keep consistent the Data Model?
20. 5: Documentation
• Do you have your User Stories defined?
• Are you commenting your code in your code?
• How are you maintaining Data model, App, etc. consistency?
• Are you already using a Source Control solution?
• Where are you keeping all this information stored?
• Are you reviewing this documentation?
22. 6: Source control
• Do you have a corporate repository for your code?
• Do you have a governance for this repository?
• Are you keeping all versions of used code?
• Are you using a corporate convention about naming and others?
• Is there any rules concerning updates on code or piece of code?
24. 7: Connections
• Do you have multiple connections in your application?
• Are you really using these connections?
• Are you using some PREMIUM connections?
• Do you need custom connectors?
• Are your users familiar with connections concept?
• Is there any connections to external services?
• What is the regulation about used services?
• Who is responsible about data storage and regulation?
26. 8: Automation
• Are you using flow in your application?
• What are the requirements about permissions?
• Do you need to run any PowerShell scripts?
• Do you need to manage flow globally?
• Are your users comfortable with tools?
• Are you reviewing regularly processes and automation requirements?
• Are you measuring automation efficiency?
• Can you learn from automation scripts?
28. 9: Regions
• Are your applications stored in the same Region than data?
• Is there any specific regulation constrain?
• In which Region your application will be used?
• Is there any difference between developers and users Regions?
• Are you measuring performance at data, network or app level?
• Do you need to segregate Data Groups?
• Is there any specific requirements about DLP?
30. 10: Migration
• Where will you store your exported artifacts?
• Who will be in charge of extraction?
• Who will be in charge of importation?
• Are you using Custom connectors?
• Are you using CDS with customizations?
• Do you need Data Gateways?
32. Takeaways
• Document all changes
• Do not forget to specify User stories
• Keep all information in a source control solution
• Use Teams to organize collaboration around App creation
• Think globally about your App, versioning and scenario
• Include the Data Model and evolutions
• Always think to the guys that will modify this app in the next 6
months…
Keep it simple with the data structure
Simplify systems layers – Eg: SharePoint performance
Transform data model at the DB Layer if possible
On Premises sources must be as close as possible - Latency
Built on a common data model
Work with DBA to anticipate on data governance
Think about the many-to-many relations
Lots of limitations with lookup columns or custom code needed
Modern model is flat. Think about using a Collection for each PowerApp and a Site Hub to connect all Applications Site collections.
Do not use any subsites
Use PowerShell and PNP to script site creation and list definition using your Naming convention
You have to maintain site access following requirements. Think about AAD Group to manage security
Think about SharePoint performance
Keep data source as close as possible from the PowerApps service
Use dedicated gateway following number of applications and others services requirements (Power BI, Flow/LogicApps, etc…)
Use virtual machines to keep Data Gateway and build clusters
Create a site collection called Applications and active HubSite using Powershell: Register-SPOHubSite (URL)
Start your naming convention and keep it consistent
Document all changes in the data model and keep it in a Source control solution (GitHub or TFS like solution)
Think about BLOB Storage, DocumentDB and other solutions to store correctly attached items
Use PowerApps collections to store application medias
Environment management and creation are limited to P2 and beyond licenses
Documentation will be required to define application test book
Version your documentation to keep history
Use source control to keep the code or pieces of code