Events
Powerful Devs Conference and Hack Together
Feb 12, 11 PM - Feb 28, 11 PM
Join the online conference and 2-week hackathon to explore building powerful solutions with Power Platform.
Register nowThis browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
This article describes the components, tools, and processes needed to implement application lifecycle management (ALM).
Environments are a space to store, manage, and share your organization's business data, apps, and business processes. They also serve as containers to separate apps that might have different roles, security requirements, or target audiences. Each environment can have only one Microsoft Dataverse database. More information: Environments overview
Important
When you create an environment, you can choose to install Dynamics 365 apps, such as Dynamics 365 Sales and Dynamics 365 Marketing. It's important to determine at that time if these apps are required or not because they can't be uninstalled or installed later. If you aren't building on these apps and will not require them in the future, we recommend that you not install them in your environments. This helps avoid dependency complications when you distribute solutions between environments.
Using the Power Platform admin center, you can create these types of Power Platform environments:
Create and use the correct environment for a specific purpose, such as development, test, or production.
For more information on environments, go to Environments overview.
Define and manage the security of your resources and data in Dataverse. Power Platform provides environment-level admin roles to perform tasks. Dataverse includes security roles that define the level of access to apps, app components, and resources app makers and users have within Dataverse.
Environment purpose | Roles that have access | Comments |
---|---|---|
Development | App makers and developers. | App users shouldn't have access. Developers require at least the Environment Maker security role to create resources. |
Test | Admins and people who are testing. | App makers, developers, and production app users shouldn't have access. Test users should have just the privileges to perform testing. |
Production | Admins and app users. Users should have just the access to perform their tasks for the apps they use. | App makers and developers shouldn't have access, or should only have user-level privileges. |
Default | By default, every user in your tenant can create and edit apps in a Dataverse default environment that has a database. | We strongly recommend that you create environments for a specific purpose, and grant the appropriate roles and privileges only to those people who need them. |
More information:
Solutions are used to transport apps and components from one environment to another, or to apply a set of customizations to existing apps.
Solutions have these features:
More information: Solution concepts
Source control, also known as version control, is a system that maintains and securely stores software development assets and tracks changes to those assets. Change tracking is especially important when multiple app makers and developers are working on the same set of files. A source control system also gives you the ability to roll back changes or restore deleted files.
A source control system helps organizations achieve healthy ALM because the assets maintained in the source control system are the "single source of truth"—or, in other words, the single point of access and modification for your solutions.
Nearly every source control system has some form of branching and merging support. Branching means you diverge from the main line of development and continue to do work without changing the main line. The process of merging consists of combining one branch into another, such as from a development branch into a main line branch. Some common branching strategies are trunk-based branching, release branching, and feature branching. More information: Adopt a Git branching strategy
There are two main paths you can use when working with solutions in a source control system:
More information: Build tool tasks
Automation is a key part of the application lifecycle that improves the productivity, reliability, quality, and efficiency of ALM. Automation tools and tasks are used to validate, export, pack, unpack, and export solutions in addition to creating and resetting sandbox environments.
More information: What are Microsoft Power Platform Build Tools?
It's important to consider how you and your development team will work together to build the project. Breaking down silos and fostering views and conversations can enable your team to deliver better software. Some tools and workflows—such as those provided in Git, GitHub, and Azure DevOps—were designed for the express purpose of improving communication and software quality. Note that working with configurations in a solution system can create challenges for team development. Organizations must orchestrate changes from multiple developers to avoid merge conflicts as much as possible, because source control systems have limitations on how merges occur. We recommend that you avoid situations where multiple people make changes to complex components—such as forms, flows, and canvas apps—at the same time.
More information: Scenario 5: Supporting team development
You can use any source control system and build a pipeline to start with for continuous integration and continuous deployment (CI/CD). However, this guide focuses on GitHub and Azure DevOps. GitHub is a development platform used by millions of developers. Azure DevOps provides developer services to support teams to plan work, collaborate on code development, and build and deploy applications.
To get started, you need the following:
More information: Create your first pipeline
To create or edit apps and flows by using Power Apps and Power Automate, respectively, users are required to have a per-user license for Power Apps or Power Automate or an appropriate Dynamics 365 application license. For more information, go to Licensing overview for Microsoft Power Platform. We also recommend contacting your Microsoft account representative to discuss your licensing needs.
When you consider ALM as an integral part of building apps on Microsoft Power Platform, it can drastically improve speed, reliability, and user experience of the app. It also ensures that multiple developers, both traditional developers writing code and citizen developers, can jointly contribute to the application being built.
See the following articles that discuss several items to consider at the outset of any application development:
Events
Powerful Devs Conference and Hack Together
Feb 12, 11 PM - Feb 28, 11 PM
Join the online conference and 2-week hackathon to explore building powerful solutions with Power Platform.
Register nowTraining
Learning path
Application lifecycle management for the Power Platform - Training
Application lifecycle management (ALM) is important as the applications your organization builds becomes more complex and as more of your company depends on their stability. ALM is not a one size fits all concept, it can vary from organization to organization and even within based on the type of solution being built. This learning path can help you with ALM best practices.
Certification
Microsoft Certified: Power Platform Developer Associate - Certifications
Demonstrate how to simplify, automate, and transform business tasks and processes using Microsoft Power Platform Developer.