Skip to main content

Power Platform ALM - Solution Structure

· 3 min read
Corey Sutton
Power Platform Icon

This is the first of many discussions into ALM strategy form Power Platform. In this installment I dive into the most fundamental question of any Power Platform ALM strategy:

How should I structure my solutions to enable a robust and reliable ALM strategy that enables and enhances the work of developers and functionals?

I have worked with two primary structuring methodoligies:

  • Component-based solutions
  • Feature-based solutions
  • Hybrid - Feature-based with component-based sub-solutions

Summary of Methods

AreaComponent BasedFeature Based
EnvironemntsOnly requires a single development environmentDevelopment environment per feature solution
ManagementEasy to manageOverhead due to number of development environments, feature import order, compoment layering
Change LocationEasy to understand where to make a changeHard to know which feature to change a component

Component Based

The easiest solution to understand and implement, a component based strategy can be summarised as:

Segregate solution components by their type, where a solution contains one or more types of solution components

This most commonly follows a logical solution component breakdown simiar to:

SolutionComponents
Data ModelTables (including all sub components), Choices, Commands, Web Resources, Security Roles, Column Security Profiles, Custon Controls, Dashboards, Duplicate Detection Rules
AppsModel Driven Apps, Canvas Apps, Custom Pages
AutomationCloud Flows, Classic Processes, Plugins, Custom Actions, Connection References, Evnrionment Variables
PortalPower Pages Portal (ehanced data model)

You may opt to break these into smaller solutions:

SolutionComponents
Web ResourcesWeb Resources, Custom Controls
AppsModel Driven Apps, Canvas Apps, Custom Pages
Data ModelTables (including all sub components), Choices, Commands, Dashboards, Duplicate Detection Rules
Security ModelSecurity Roles, Column Security Profiles
AutomationCloud Flows, Classic Processes, Custom Actions, Connection References, Evnrionment Variables
PluginsPlugins, Custom Action Plugins, Evnrionment Variables
Automatic Record CreationCloud Flows, Routing Rule Sets, Record Creation and Update Rules
PortalPower Pages Portal (ehanced data model)

Dependencies between layers is tricky, so these solutions are listed in a recommended import order.

Feature Based