Difference between Unmanaged Package and Managed Package in Salesforce

Unmanaged Package:

  • Unmanaged packages are typically used to distribute open-source projects or application templates to provide developers with the basic building blocks for an application.
  • Once the components are installed from an unmanaged package, the components can be edited in the organization they are installed in.
  • The developer who created and uploaded the unmanaged package has no control over the installed components, and can’t change or upgrade them.
  • Unmanaged packages should not be used to migrate components from a sandbox to production organization. Instead, use Change Sets.

Managed Package:

  • Managed packages are typically used by Salesforce.com partners to distribute and sell applications to customers.
  • Once the components are installed from a managed package, the components cannot be edited in the organization they are installed in.
  • Managed packages are also fully upgradeable.
  • To ensure seamless upgrades, certain destructive changes, like removing objects or fields, can not be performed.