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
m 3m 3 

could you please explain me difference between packaged and unmanaged package?

NagendraNagendra (Salesforce Developers) 
Hi,

A package is a container for something as small as an individual component or as large as a set of related apps. After creating a package, you can distribute it to other Salesforce users and organizations, including those outside your company.

Packages come in two forms—unmanaged and managed:

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.

As a best practice, install an unmanaged package only if the org used to upload the package still exists. If that org is deleted, you may not be able to install the unmanaged package.

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
The following definitions illustrate these concepts:

Unmanaged and Managed Packages
User-added image
Components:

A component is one constituent part of a package. It defines an item, such as a custom object or a custom field. You can combine components in a package to produce powerful features or applications. In an unmanaged package, components are not upgradeable. In a managed package, some components can be upgraded while others can’t.

Attributes:

An attribute is a field on a component, such as the name of an email template or the Allow Reports checkbox on a custom object. On a non-upgradeable component in either an unmanaged or managed package, attributes are editable by both the developer (the one who created the package) and the subscriber (the one who installed the package). On an upgradeable component in a managed package, some attributes can be edited by the developer, some can be edited by the subscriber, and some are locked, meaning they can’t be edited by either the developer or subscriber.

For information on which components can be included in a package and which attributes are editable for each component, see the ISVforce Guide.
Packages consist of one or more Salesforce components, which, in turn, consist of one or more attributes. Components and their attributes behave differently in managed and unmanaged packages.

If you plan to distribute an app, it is important to consider packaging throughout the development process. For example:

While creating your app, consider how components and their attributes behave in different packages and Salesforce editions.

While preparing your app for distribution, consider how you want to release it to your customers.

While installing a package, consider your organization's security and license agreements.

Hope this helps.

Kindly mark this as solved if the reply was helpful.

Thanks,
Nagendra
Deepali KulshresthaDeepali Kulshrestha
Hi m3,
There is a very simple difference between Unmanaged and Managed package that is quite easy to understand.
Unmanaged Package:
Once you install unmanaged packages in salesforce you are provided with the flexibility to edit the components in the organization they are installed in. With unmanaged packages, users can easily understand basic building blocks for an application.

Managed Package:
Once the components are installed from a managed package, the components cannot be edited in the organization they are installed in.
For more understanding please refer to the link provided below:
https://www.biswajeetsamal.com/blog/difference-between-unmanaged-package-and-managed-package-in-salesforce/

I hope you find the above solution helpful. If it does, please mark as Best Answer to help others too.

Thanks and Regards,
Deepali Kulshrestha
 
Marc AttiasMarc Attias
Hi 👋🏻 
Thank you.
My understanding, in practice, companies used change sets with a developer sandbox, what are the challenges and limits of this method?
Best,
Marc