Everything as Code - ALM with Canvas Apps
With the recent experimental announcement of the PowerApps Solution Packager, we now have a much better way of managing Canvas Apps in your source code repository. This moves us much closer to a better ALM story for the whole of the Power Platform so that my top 3 principles can be followed:
- Everything as code – The single point of truth for all artifacts (solution metadata, apps, code, data, versioning, releases) should be under source control.
- Environments as cattle, not pets – When the entire solution is under source control, environments can be built and deleted for specific purposes – e.g. features, experiments, testing. I wrote a recent post on this.
- Define your Branching Strategy – A branching strategy is defined as describing how features/releases are represented as branches. Each time a new feature (or group of linked features) is worked on, it should happen in a source code branch. Code can be merged between each branch when ready to be integrated, built and released. Branches normally would have an associated PowerPlatform environment to allow you to work in parallel to other changes without the risk of introducing changes that should not be released. The gitflow branching strategy is a great starting point to use.
The Power Apps Solution Packager (pasopa) brings us closer to the 'everything as code' mantra - by unpacking a Canvas App into source code files that allow you to merge in changes from other branches and then re-pack. Eventually, this will make its way into the Power Apps CLI and Solution Packager.
Here are a couple of videos I've done on the subject of the PowerApps Solution Packager:
- ▶ Canvas Apps As Code??! Power Platform Unpacked #10
- ▶ Managing Canvas Apps as Source Code using Branches and Pull Requests
Published on:
Learn moreRelated posts
🔓 Understanding the “Access app scope” Feature in Canvas App Components (Power Apps)
💡 Introduction In Power Apps Canvas Apps, components play a crucial role in building reusable UI and logic blocks. However, traditionally, co...
Canvas App | Easy way to use SVG icons with PowerIcons
In my previous articles, I explained how to use SVG icons in Canvas Apps by manually modifying the SVG content to make it compatible with Canv...
How to Detect that a PCF is Running Inside a Canvas App / Custom Page
Usually my target is to develop a PCF working inside all types of apps: Canvas App (or Custom Pages), Model-Driven Apps and hopefully also ins...
Power Up Your Canvas Apps with No Code Interactive Maps: A Game-Changer for Sales and Field Teams!
If you’re a Sales Manager juggling territories, appointments, and customer data across multiple tools, it’s time to simplify things—with maps ...
Debug PCFs using a Browser Autoresponder Extension (MDA & Canvas Apps)
I’m sure the Autoresponder idea for Debugging PCFs (or WebResources) is not new to you. Debugging with an autoresponder solution is a li...
Summer 2025 Dynamics 365 Maps Release: Smarter Routing, Azure Maps, Canvas Apps & More!
Technology never stands still, and neither does Team Maplytics! With our latest March 2025 updates, your geo-mapping experience within Dynamic...