Managed vs. Unmanaged Solutions in Power Platform: A Comprehensive Comparison

Managed vs. Unmanaged Solutions in Power Platform: A Comprehensive Comparison

In the Microsoft Power Platform, solutions are a way to package and manage customizations for apps, workflows, entities, and other components. These solutions can be either Managed or Unmanaged, and each type serves a specific purpose depending on the stage of development and deployment. Understanding the key differences between the two is crucial for developers, administrators, and business users working in Power Platform environments.

This article breaks down the differences between managed and unmanaged solutions, explaining when to use each and highlighting their pros and cons.


1. Unmanaged Solutions:

  • Description: An unmanaged solution is primarily used during the development phase. When you are building customizations and need to change components frequently, you use unmanaged solutions.
  • Key Characteristics: You have full control over the components.Customizations can be added, modified, or deleted at any time.Changes made in an unmanaged solution directly affect the default solution (the base system) of the environment.Unmanaged solutions are not intended for distribution to other environments or customers.
  • Pros: Flexible for development and iteration.All components remain editable and customizable. Best suited for development environments.
  • Cons :It can be difficult to track which customizations have been deployed if used in production environments.Risks of accidental deletions or modifications since the components are not protected.
  • Example Use Case: Suppose you are creating a custom app to track employee performance and have multiple iterations. You start by creating the app in an unmanaged solution because you will need to modify the entities, forms, views, and flows several times. This allows you to freely edit and experiment with the components.


2. Managed Solutions:

  • Description: A managed solution is used to deploy customizations to production environments or to distribute solutions to other environments or customers. Managed solutions are typically locked down, meaning the components cannot be directly modified by the user after deployment.
  • Key Characteristics:Components are locked down, and changes can only be made by importing an updated solution.They are isolated from the default solution, making it easier to remove them cleanly.Managed solutions can be exported and distributed to other environments or customers.They support version control, upgrades, and can be removed without affecting other components.
  • Pros:Ideal for distributing to other environments, especially in production.Protected from accidental changes or deletions.Easier to clean up if you need to uninstall the solution.
  • Cons:Components cannot be edited directly in the destination environment.Less flexible for ongoing development; updates need to be packaged as a new solution version.
  • Example Use Case: You’ve completed your employee performance tracking app and want to deploy it to the production environment or to distribute it to another department. You package the final version as a managed solution and import it into the production environment. Now, users in that environment cannot modify the core components, ensuring the integrity of your solution.


Editing Components

Unmanaged Solutions: In unmanaged solutions, components (entities, forms, flows, views, etc.) are fully editable in all environments. This makes unmanaged solutions ideal for development and testing, where flexibility is necessary to iterate and make changes quickly. You can modify, delete, or add to these components without restrictions.

Managed Solutions: In contrast, managed solutions lock down components once they are deployed to the target environment. After deployment, these components cannot be edited directly by users in that environment. Managed solutions provide better control in production, ensuring the integrity of the solution by preventing accidental or unauthorized changes.


Use Case

Unmanaged Solutions: These are typically used in development and test environments, where ongoing customization, iteration, and experimentation are essential. Developers use unmanaged solutions to create, modify, and refine components until they are ready for production. Unmanaged solutions are flexible, allowing changes at any stage of development.

Managed Solutions: Managed solutions are primarily used for production deployment or when distributing a solution to other environments, such as staging or customer environments. Managed solutions are better suited for situations where components need to be stable, protected, and unmodifiable after deployment. They are also ideal for distributing packaged solutions to multiple environments, ensuring consistency and control over the solution.


Impact on Base Solution

Unmanaged Solutions: When changes are made in an unmanaged solution, those changes are applied directly to the default solution of the environment. The default solution is the underlying base system of the Power Platform environment, meaning that unmanaged changes become a permanent part of that system. This can be risky in production environments where you don’t want customizations directly modifying the core system.

Managed Solutions: Managed solutions do not directly affect the default solution. Instead, the customizations are isolated within the managed solution, offering a layer of protection to the base system. If you need to remove the managed solution, the components are cleanly removed without leaving traces in the default solution, ensuring a controlled environment.


Customization Flexibility

Unmanaged Solutions: The main advantage of unmanaged solutions is their flexibility. You can freely make changes to the components as often as necessary. For example, when developing a new custom app or workflow, it’s common to iterate multiple times, refining and tweaking the solution until it meets your needs. With unmanaged solutions, you have the freedom to change or update any part of the solution as you go.


Managed Solutions: Managed solutions are locked down after deployment, so the components within them cannot be modified by users in the target environment. This is ideal for scenarios where you want to protect the integrity of the solution, such as in production environments. If updates are required, you need to create a new version of the managed solution and redeploy it, providing controlled and deliberate change management.


Deletion and Cleanup

Unmanaged Solutions: If you delete an unmanaged solution, the components within it are not removed from the system. This is because the changes made by the unmanaged solution are applied directly to the default solution, so they remain in place even after the unmanaged solution itself is deleted. This can lead to a cluttered environment, with components lingering even after they are no longer needed.

Managed Solutions: When you delete a managed solution, all the components that were part of the solution are cleanly removed from the environment. Managed solutions are designed for easy removal, ensuring that no leftover components remain in the system. This makes managed solutions a better choice for environments where solution clean-up and removal are important.


Reusability

Unmanaged Solutions: While unmanaged solutions are primarily used in a single development environment, they are not intended for distribution. You wouldn’t use unmanaged solutions to package and distribute your work to other environments or clients because they don’t offer protection and version control, which are necessary for reliable deployment in production.

Managed Solutions: Managed solutions, on the other hand, are built for distribution. They can be exported from one environment and imported into another, making them suitable for sharing or deploying across multiple environments or organizations. Managed solutions offer the versioning and upgrade features needed to ensure that the same components are deployed consistently across all environments.


Versioning and Upgrades

Unmanaged Solutions: Unmanaged solutions don’t inherently offer a versioning system. Any changes made are immediately applied, and it’s up to the development team to manage changes manually. This lack of formal versioning can make it difficult to keep track of changes, especially in larger projects with multiple iterations.

Managed Solutions: Managed solutions support versioning and upgrading, allowing you to deploy updates in a structured way. When you need to make changes or improvements, you create a new version of the managed solution and deploy that version to the environment. This versioning system is especially useful for managing updates in production, where stability is crucial.


Protection Against Changes

Unmanaged Solutions: Because unmanaged solutions are fully editable, there is no protection against accidental or unauthorized changes. This makes them less suited for production environments, where unintentional modifications could disrupt system stability or functionality.

Managed Solutions: Managed solutions provide built-in protection against changes. Once deployed, components are locked, and only authorized updates (through a new solution version) can be made. This ensures that the solution works as intended without risk of unauthorized alterations.


Real-World Example

Let’s say you are developing a Sales Management System with custom entities for Leads, Opportunities, and Accounts, along with custom forms and workflows.


In Development: You create the system in an unmanaged solution because you need the flexibility to add, modify, and refine components as you build the solution. Since you’re in the development phase, you expect frequent changes, and the unmanaged solution allows you to iterate freely.

In Production: Once the system is ready, you package it as a managed solution and deploy it to the production environment. By doing this, you ensure that no one can modify the components, protecting the integrity of your work. If future updates are needed, you create a new version of the managed solution and deploy it, ensuring controlled upgrades without risking the stability of the production environment.


When to Use Unmanaged vs. Managed Solutions

Use unmanaged solutions during development and testing, where flexibility is required, and you expect to make frequent changes to the components.

Use managed solutions when deploying to production environments or distributing your solution to other users or organizations. Managed solutions ensure that your customizations are protected, stable, and easily versioned for future updates.


Summary

Both managed and unmanaged solutions have their place in the Power Platform ecosystem. Unmanaged solutions offer the flexibility and freedom needed during development, while managed solutions provide control and protection when deploying to production or distributing your solution. By understanding the strengths and weaknesses of each type, you can choose the right solution approach for your specific project needs, ensuring smooth development, deployment, and maintenance of your Power Platform customizations.

Tonje Waasj?

Digital advisor at Innovit

3 周

I am all for the use of manged solutions, but what about the solutions where you trigger flows from MS Forms? I like to use different forms for development and production. You can't have the Forms ID in a variable and you can't change it in a managed solution. I hope Microsoft find a solution for these kind of issues. F&O triggers can't be in external variables either, and probably many more...

回复
Bülent Altinsoy

MCT | Business Applications Portfolio Lead @ Avanade | Power Platform & Copilot Studio Expert | Content Creator

3 周

Good comparison. Also good to know: Microsoft tries to push users away from unmanaged solutions. I can imagine that in a few years only managed solutions will be allowed when importing in Power Platform. One example is managed environments, which MS also pushes a lot. So it’s better to deal with managed as unmanaged solutions in the future.

要查看或添加评论,请登录

Marcel Broschk的更多文章

社区洞察

其他会员也浏览了