Salesforce Platform Developer I Certification Guide
上QQ阅读APP看书,第一时间看更新

Extending an application's capabilities using AppExchange

AppExchange is the official Salesforce marketplace for business applications and is available at https://appexchange.salesforce.com/.

An app is a bundling of custom objects, fields, programmatic and/or declarative logic, and automations. They solve a specific business requirement or support a specific business process in a better way. You can install an app from AppExchange by simply clicking on the Get It Now button and decide on whether to install a production or a sandbox environment.

When you get a new requirement, it's good practice to check on AppExchange first, in order to see whether there is a solution already – either free or paid.

So, what can you find on AppExchange? Well, let's take a look, as follows:

  • Apps: These are groups of tabs, objects, components, and business logic that work together to provide standalone functionality.
  • Lightning components: These are the building blocks of functionality that you can drag and drop into a Lightning app, on Lightning pages, or community pages through the Lightning App Builder interface.
  • Flow solutions: If you want to automate your business process with flow actions, then Lightning flow is considered one of the most powerful, and more advanced, declarative automation tools. The chances are that somebody has already built some flow processes that meet your needs.
  • Lightning bolt solutions: These are industry template solutions, which are mainly built by partners to help you market faster. Lightning bolts contain process flows, apps, Lightning components, and even whole communities.
  • Lightning Data: These are pre-integrated, approved, and scalable data solutions. If you want to connect to a data source supplier, such as D&B, then first check whether there is a Lightning Data solution for it.
  • Consulting partners: If you are looking for help implementing or expanding your Salesforce solution, then AppExchange contains a listing of all consulting partners worldwide, including reviews.

AppExchange is extremely easy to search—you just type in a keyword and it will start giving you suggestions. You can easily filter the search options according to industry to see what apps are popular in your industry. Additionally, you can filter by solution type, price, compatibility with your Salesforce edition, ratings, and language. It will even suggest you learning modules on Trailhead, the free online Salesforce learning platform!

Here are the things that you need to consider when choosing an AppExchange solution:

  • Is it free or paid? Does it fit within your budget?
  • Is it compatible with your Salesforce edition?
  • Does it require you to turn on some features that are not yet enabled in your org?
  • Is it Lightning-compatible or does it only work in Classic?
  • What do the reviews say? Are any of your requirements not met?
  • Always test in a sandbox environment first!

When talking about AppExchange, it's important that we talk about packages, because that's what you will be installing—a package.

You can expect one or more questions about packages in the exam—just saying!

Packages are bundles of metadata components that make up an app or solution. A typical package will contain objects, fields, Workflow Rules (WFRs), validation rules, processes, approval processes, flows, Apex classes, Visualforce pages, and Lightning components. There could be hundreds of them in one package.

Packages are used for distribution across unrelated orgs—it's like deploying a change set.

In fact, anybody can create a package for distribution, and then share the link to someone else to install the solution in their org. These packages are private and the receiver must know the exact URL of the package to be able to install it.

If you want your package to be publicly available, searchable, and/or listed, then it must be uploaded on AppExchange.

Packages that are published on AppExchange also come in two variants, as follows:

  • Unmanaged packages:
    • They are used for distribution across orgs.
    • By installing an unmanaged package, you copy all its contents into your org and, after installation, you can modify everything. You can change the Apex code, the Visualforce code, mark fields as required or not, change their data types, and more.
    • The contents of the package become yours.
    • This also means that the creator or provider loses all control and, in most cases, they cannot offer any support on the package.
    • They don't need to have a namespace.
    • The packaged components will count toward your org limits.
  • Managed packages:
    • The source code of managed packages is hidden from you
    • You can't see or modify any of the code
    • Managed packages can only be created in a developer environment
    • This also means that the creator or provider has control over the installed version and can offer upgrades
    • The provider will mostly provide support on the package
    • You can grant the provider access to your org to support you, in the same way that you would grant access to the Salesforce support
    • The packaged components do not count towards your orgs limits
    • The use of a namespace is required
    • Managed packages are typically for sale on the AppExchange