Salesforce Deployment allows migration of changes from one environment to another. The various deployment tools available are Change Set, Force.com IDE, ANT, etc.
A change set is a means by which an organization can send customizations to another organization. For example, you could create a new object in a sandbox organization, and send it to your production organization using a Change Set.
Develop your Force.com applications as do in your Developer Edition organization or Sandbox organization. Once you’re ready to deploy to your Production organization, create a new project in the IDE that contains only the exact items that you want to deploy. Then deploy your application to Production from the new project.
Here are some of the effective Salesforce Deployment Best Practices compared with Change Set and Force.com IDE.
A profile contains user permissions and access settings that control what users can do within their organization. Here are the some tips for migrating profiles,
- You can add System Administrator profile in Change Set while moving components, but in Force.com IDE you can’t see and add System Administrator profile.
- You can easily override the profiles permission such as General Permission and Admin Permission easily by adding profiles in the change set.
- To deploy or Override a profile via Force.com IDE, you just add that profile. There is no need to add dependent object. For example, you have a custom object called Test, and you gave View All Permission to the object. When your move this particular profile, you need to add the Test object in change set, but in Force.com IDE three is no need to add the Object Test.
Objects and Fields
Objects are database tables that allow you to store information unique to your organization. Here are the some tips for migrating Objects and their fields.
- To deploy a custom object and its fields via Change Set, you need to add the custom object and every field to the change set; adding just the custom object to the change set won’t cause deployment to fail, but results in an empty custom object without their fields. But when migrating object via Force.com IDE, you just need to add the object and deploy it. It is not necessary to add their fields as you do in Change Set.
- You can override a Standard object and their corresponding field values via Force.com IDE. For example, if you want to add around 100 new stage values to Stage (Picklist) field of an Opportunity, you can just override those values or update via Eclipse, but in Change Set, you cannot move or update those stage values, as we need to manually add those Picklist values in your target organization.
Any change that causes a record to match the workflow criteria can trigger the workflow rule—even changes to hidden fields. Workflow contains following action that are Email Alert, Tasks, Field Update and Outbound Messages. Here are the some tips for migrating Workflows and their Actions,
- When you move workflow via Change Set, you need to add all related components such as Email alerts, Email templates, Tasks, and Field update.
- Moving workflows via Force.com IDE is simpler than change set. You don’t need to add all related components for the workflow. If you move just the workflow, all its related components will also be moved.
- Another advantage of moving work flow via Force.com IDE is that all existing workflows will be updated with the new one, and if a workflow doesn’t exist in a target organization, the workflow will be automatically created.
- Force.com IDE requires less manual while migrating Picklist. For example, if you want to move Sales Process for the Opportunity object via Change set, you need to add dependent Business Process and Stage field, but the Stage Picklist values need to be created manually in the target organization. With Eclipse, you can just override opportunity object, the corresponding Picklist values, and the Sales Process will be automatically added.
- Change set can include almost anything like classes, pages, reports, objects, page layouts, record types, email templates etc.
- We can validate the selected classes/trigger etc. before deployment via Force.com IDE. If the deployment fails, it will show the errors with line number. You can check those errors before deploying into your target organization.
- Change sets are limited to 5,000 components or files.
- Plan your deployment activities around the schedule maintenance window for both your production and sandbox environment.
- A change set can only be moved between sandboxes within an Organization, but Eclipse can be used to move between unrelated organizations.
- Change Sets provide the ability to clone the existing change set components, whereas Eclipse doesn’t.
The size and complexity of the change set determine how long it takes to deploy a change set. You can monitor your deployment status under Monitor Deployments in App Setup.
- The change set remains active in organization for a certain period of time.
- Change Sets allow you to track all deployments activities.
- You can view the XML representation of a component before you upload an outbound change set, or deploy an inbound change set.
- Detailed logs are not generated in Integrated Development Environment. For example, system log file.
- Force.com IDE will not keep track of the Classes and Pages which were deployed earlier.