function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
_sfdc_sfdc 

what is difference between managed packages and unmanaged packages?

Ashish_SFDCAshish_SFDC
Hi ,


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
Sagarika RoutSagarika Rout
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.

Regards,
Sagarika
SFDC Developer
praveen murugesanpraveen murugesan
Hi Shiva,

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
Atif MAtif M
Thanks Praveen,

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
 
Krishna Prasad 56Krishna Prasad 56
Thanks all of you, for my understanding is it the same like paid and free apps from Playstore of Android?
RahulGRahulG

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.

Arun Kiran 1Arun Kiran 1
How can i Distinguish btw managed and unmanaged packages in AppExchange ?
 
Ankit ThakkarAnkit Thakkar
@Arun, Go to installed package from Setup and check Package Type attribute which will indicate whether package is manged or unmanaged package.