This document provides advice on developing PowerApps in a production environment. It addresses key questions around data sources, data modeling, licensing, environments, documentation, source control, connections, automation, regions, and migration. The takeaways emphasize documenting all changes, specifying user stories, using source control, collaborating in Teams, considering the global app and future modifications, and including data modeling evolutions.
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
From the field! PowerApps in production
1. Back from the field:
PowerApps in Production
Nicolas Georgeault – Founder and Principal Product Manager
@MuBrain Inc. | Extend your Collective Intelligence
https://www.linkedin.com/in/nicolasgeorgeault
2. About me
• Founder and PPM @MuBrain Inc.
• 20 years of experience in KM
• 12 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
3. I don’t always test my code
But when I do,
I do it in production
5. 1. Data source
• Is there only one data source?
• Are you using SharePoint?
• Do you need Data Gateway for On Premises sources?
• Do you need to mix SQL and others sources types?
• Do you have an existing data governance?
• Are you planning to set DLP strategy?
6. 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.?
7. Data Gateway
• What is the network latency between sources and PApps service?
• Are you using a dedicated gateway?
• Do you need Gateway Clustering?
9. 2: Data model
• Is there any Custom 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?
• How to maintain and keep consistent the Data Model?
10. CDS – Common Data Service
Customers
Only one
application
connection
Only one
dashboard
connection
CRM
Support
Marketing
…
Billing system
Invoices
Payments
…
Delivery system
Timesheets
Expenses
…
Communication
system
Emails
Phones
…
Collaboration
system
Documents
Sites
…
Customer
11. CDS – Common Data Service
Customers
Only one
application
connection
Only one
dashboard
connection
CRM
Support
Marketing
…
Billing system
Invoices
Payments
…
Delivery system
Timesheets
Expenses
…
Communication
system
Emails
Phones
…
Collaboration
system
Documents
Sites
…
Customer
This is the idea of the Common Data Service
15. 4: Environment
• Do you have some P2 licenses in your company?
• Are you planning to segregate environments?
https://docs.microsoft.com/en-us/powerapps/administrator/environments-overview
17. 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?
19. 6: Source control
• Are you keeping sources of your app out of PowerApps?
• Each version of your app?
• Are you using a Source control service?
• Are you versioning your App? And backend?
• Did you defined your Personas?
• Are you keeping the documentation up to date?
• Did you define stories and testing plan?
21. 7: Connections
• Do you have multiple connections in your application?
• Are you really using these connections?
• Are you using 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?
23. 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?
25. 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?
27. 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?
29. 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