A xRM application built on Dynamics CRM platform consists of several components viz.,
- Schema: Entities,Relationships between Entities, Option Sets
- User Interface: SiteMap, Web Resources, Application & Entity Ribbons
- Anlaytics: Reports, Dashboards
- Code: Workflows, Plug-ins
- Security: Roles (built-in and custom), Field Security profile
- Templates: E-mail, Articles
The above can be packaged up as Unmanaged or Managed solutions so it can be deployed in the target environment.
Managed Solution: A self contained packaged that can be installed/uninstalled in target environment. No ability to add/remove solution components, changes can made to solution components if already set through managed properties.
Unmanaged Solution: An unmanaged solution provides the ability to add/remove components, delete components (custom entities etc). All the components in unmanaged solution will be references to customizable components in the CRM organization.
When both unmanaged and managed solutions are imported into an organization, conflict resolution is done through Merge and Top Wins stragety
Merge: Applies to user interface components and unmanaged customizations will be last to be applied.
Top Wins: Applies Entities,Views, Security Roles. In case of managed solution the last managed solution imported will have the changes applied and on of this when an unmanaged solution is imported then previous changes are overwritten.
Example:
Consider a solution having “account” entity
Create two versions using “Clone a Patch” option to change the label on the Account form.
Change the Phone number label text for the above solution
Publish the changes and the Account form view will be:
Now create another Clone to Patch version 2:
The view of Account form after publishing the changes note this is the last Unmanaged Solution to be published.