Unmanaged packages are typically used to distribute open-source projects or application templates to provide developers with the basic building blocks for an application , whereas Managed packages are typically used by salesforce.com partners to distribute and sell applications to customers.
Main thing which differentiate Managed and Unmanaged is , Managed version can be upgraded but the Unmanaged version you can customize however you like, but it can't be upgraded (if a new version were released, you would need to uninstall and reinstall, which can be difficult once you have data). That is the reason , unmanaged package is only used to share the meta data.
Unmanaged packages 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 packages Managed packages are typically used by Salesforce partners to distribute and sell applications to customers. These packages must be created from a Developer Edition organization. Using the AppExchange and the License Management Application (LMA), developers can sell and manage user-based licenses to the app. Managed packages are also fully upgradeable. To ensure seamless upgrades, certain destructive changes, like removing objects or fields, can not be performed. Managed packages also offer the following benefits:
Intellectual property protection for Apex Built-in versioning support for API accessible components The ability to branch and patch a previous version The ability to seamlessly push patch updates to subscribers Unique naming of all components to ensure conflict-free installs
You have defined it perfectly. I have got one question on this: "Unmanaged packages should not be used to migrate components from a sandbox to production organization. Instead, use Change Sets". If we do Unmanage Package for initial time to migrate functionalities from sandbox and install in production, than for the second time if I do Unmanaged Package in sandbox and try to install in production, will it upgrade. Or it will used only for one time only.
No, free and paid app is commercial aspects of Managed packages that passed through Salesforce security review process. Every app on appExchange is managed package. An unmanaged package is what you would develop for your internal use as reusable apps/component or someone else might share with you as a link to be installed on your org to be used as starting point for your further development.
There are Apps in the App Exchange that we can Install in our Orgs.
They are of two types - Managed and Unmanaged.
Managed are the ones where the Code is Hidden and Can be easily Upgraded or PUshed with new updates to the code.
Where as Unmanaged Packages have the Code Visible and can be edited by the Org in which it has been Installed.
Unmanaged Packages cannot be Upgraded or Pushed - they are like one time coded.
Read through the doc below,
https://help.salesforce.com/HTViewHelpDoc?id=sharing_apps.htm&language=en_US
Regards,
Ashish
Main thing which differentiate Managed and Unmanaged is , Managed version can be upgraded but the Unmanaged version you can customize however you like, but it can't be upgraded (if a new version were released, you would need to uninstall and reinstall, which can be difficult once you have data). That is the reason , unmanaged package is only used to share the meta data.
Regards,
Sagarika
SFDC Developer
Hope this will help u to under stand.
Unmanaged packages
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 packages
Managed packages are typically used by Salesforce partners to distribute and sell applications to customers. These packages must be created from a Developer Edition organization. Using the AppExchange and the License Management Application (LMA), developers can sell and manage user-based licenses to the app. Managed packages are also fully upgradeable. To ensure seamless upgrades, certain destructive changes, like removing objects or fields, can not be performed.
Managed packages also offer the following benefits:
Intellectual property protection for Apex
Built-in versioning support for API accessible components
The ability to branch and patch a previous version
The ability to seamlessly push patch updates to subscribers
Unique naming of all components to ensure conflict-free installs
Thanks.
Praveen Murugesan
You have defined it perfectly. I have got one question on this:
"Unmanaged packages should not be used to migrate components from a sandbox to production organization. Instead, use Change Sets".
If we do Unmanage Package for initial time to migrate functionalities from sandbox and install in production, than for the second time if I do Unmanaged Package in sandbox and try to install in production, will it upgrade. Or it will used only for one time only.
Thanks,
Atif M
No, free and paid app is commercial aspects of Managed packages that passed through Salesforce security review process. Every app on appExchange is managed package. An unmanaged package is what you would develop for your internal use as reusable apps/component or someone else might share with you as a link to be installed on your org to be used as starting point for your further development.