As
we know that we have two types of solutions called Unmanaged and Managed.
In my definition:
Unmanaged -
Developer's solution, I want to make a mess around it and play on things and it
gives me all the freedom in the whole of dynamics works to dig out
Managed - Boss
solution, very reserved. Devs are done with their play..now no more tweaking
allowed, OVERALL "Its serious business now"
We always used to scratch our head and think loud when
it comes to releases to the upper instances that what should we be using, and
that pain sometimes let us do some crazy things which we regret later.
If every developer has been given a magic spell to
make changes as or what they want in all the instances, they will love to have
a bite on the UNMANAGED solution should be there everywhere with knowing the
consequences around it.
Here I would be highlighting some core experiences I
had where people are scared of Managed solution thinking that it might FAIL,
NOT Upgrade or worst as usual ASK for DEPENDENCIES 😟
Have you ever wondered that those will be something
wonderful when we consider the long run 🏃♂️
Unmanaged Solution
Pros:
1. Full access to the customizations around any
components
2.
Merges politely anywhere at any point of time until unless any major dependency
component is NOT missing in solution
3 Can be taken out and imported in and around all the
instances (doesn't matter if the solution has been exported from Prod and
imported to Dev)
Cons:
1. Cannot delete anything from solution import, you
need to manually go into every instance and delete the part of customization NO
longer in use
2. You will have no idea if by mistake something has
been overwritten and changes cannot be rolled back (until unless you restore
the whole instance) ... Sounds CRAZY. Right?
3. Might get a lot of unnecessary stuff merged in
which is hard to separate from any other Managed changes on top of it
Managed Solution
Pros:
1. Best thing when it comes to importing the solution
for business purpose and no top-up direct dev work required on the system
2. Easily replaces the deleted components in NEW
solution by Stage For Upgrade functionality in the system (this will introduce an
add-on upgrade solution called as holding solution which actually holds Data in
live systems before replacing the existing solution of the same name and
version the whole thing)
3. Best way to work things out using Patch solution
around these in Business based Live or UAT systems. How would I do
that? Create a patch of the main solution which is managed from a Dev
instance and later out the required components in and get that imported to the
target system. What is good about that? Ones you come up with another
versioned new release you can just go in without worrying about the patch, it
just merges all in automatically
Cons
1. No more freedom to tweak things directly in the
Target system as you must follow a well-defined release process with set of
approvals
2. It might fail for various scenarios if the solution
has not been properly put (drives devs crazy so noted as Con but it’s something
useful when we see the future consequences around end-user)
Hope this helps understanding a bit around solution. 😊