Hello fellow CRM administrators! It has been a little while, but I am back with hopefully a post that will be very helpful to all of you: Dynamics solutions and SFDC change sets. Hopefully, this will clear some things up for you guys!
Salesforce.com (SFDC) change sets and Microsoft Dynamics CRM (Dynamics) solutions are very much alike, but quite different at the same time. Both are methods used to send customizations and configurations from one environment to another (typically a sandbox environment to a production). It is important to note that change sets and solutions only contain the metadata, and not actual data. Creating components in a sandbox environment before deploying to a production environment allow administrators to iteratively build and test without affecting the business. Although both SFDC and Dynamics provide methods to achieve this, there are differences that should be pointed out.
- Deployment Connections
- SFDC requires a deployment connection between two environments (i.e. sandbox and production). An administrator needs to create and send an outbound change set in the source environment; then he/she needs to validate and deploy in the target environment. On the other hand, Dynamics solutions can be exported from any environment and imported to any environment.
- Building Change Sets and Solutions
- Both platforms require that all dependent components either be included in the SFDC outbound change set/Dynamics solution or the target environment must already have them. When building the outbound change set/solution, components can be added and removed as needed. The difference between the two platforms, however, occurs after the change set/solution has been finalized in the source environment. Once a SFDC change set is uploaded, no changes can be made to the change set or any its components. If a component needs to be added or removed or if any of the components are altered, a new change set must be created and uploaded. To help with re-work, change sets can be cloned and altered. On the other hand, Dynamics solutions are dynamic in that components and always be added and removed, even after they have been created and pushed. The components in the solution can even be altered after the solution has been created as well. For best practices, however, administrators should version their solutions.
- Testing and Validating Code
- Testing code is a must for any developer. SFDC requires test and code coverage on all custom code before deploying the code in a change set to a source environment. On the other hand, Dynamics solutions do not have the same requirements, allowing administrators to deploy without test code. After pushing to the target environment, SFDC change sets can be validated before being deployed. This will help catch any errors or problems with the change set before deployment, but validating does not always result in a successful deployment; Dynamics solutions cannot be validated, and the platform will let administrators know if the deployment was successful or not once pushed to the target environment.
- Limits
- SFDC change sets are limited to 2,500 components and 400MB of total file size. Dynamics CRM Online solutions are limited to 29MB. However, on-premise solutions default to 6MB, but can be increased and is limitless.
- Components that cannot be pushed
- Although both platforms take out the manual work to push configurations and customizations from a source to a target environment, there are some components that are manually handled. Again, these are strictly components that have been customized and not data, as data is not transferred.
- Dynamics solutions:
- Business units
- Teams
- Queues
- Goals
- Subjects
- Product catalog
- SFDC change sets:
- Lead data mapping
- Field level security
- Profile settings
- Picklist field values
- Track history fields
- Dynamics solutions:
- Although both platforms take out the manual work to push configurations and customizations from a source to a target environment, there are some components that are manually handled. Again, these are strictly components that have been customized and not data, as data is not transferred.
These were the main differences that I have found between the two platforms. If you have found others, please let me know!