📢 Attention Salesforce Certified Trailblazers! Maintain your credentials and link your Trailhead and Webassessor accounts by April 19th. Learn more.
close
•
Start tracking your progress
Trailhead Home
Trailhead Home

Understand the AppExchange Development Landscape

Note

Note

Attention, Trailblazer!

Salesforce has two different desktop user interfaces: Lightning Experience and Salesforce Classic. This module is designed for Salesforce Classic.

You can learn about switching between interfaces, enabling Lightning Experience, and more in the Lightning Experience Basics module here on Trailhead.

Learning Objectives

After completing this unit, you’ll be able to:

  • Define a package and describe how Managed - Beta and Managed - Released packages are used in the development lifecycle.
  • List the types of orgs used in the development of an AppExchange app and the use of each org.
  • Describe why to treat the golden package org with the utmost care.

Developing and Distributing Your App

Ready to build your app, test it, and send it off to customers? As an AppExchange partner, you use many different orgs to get your app published. This module introduces the environments used in developing your app, how you create and manage them, and how you move your app between those orgs.

Set Up a Development Management Org

As an AppExchange Partner, you have orgs for development, testing, staging and packaging, demos, marketing, selling, and distributing your app. To create and manage orgs for development, you use the Environment Hub app.

The Environment Hub is installed in your business org. The business org also has all the apps and features for your marketing, sales, operations, and alliances teams to do their jobs.

The business org provided to you as a Salesforce partner has two licenses, which are usually assigned to people running your business.

You can create a Partner Developer Edition org to serve as a development management org and request that the Environment Hub app be installed there. This org comes with 20 licenses. You can assign those licenses to your development and quality assurance team members so that they can create and manage their own orgs.

To set up your development management org:

  1. Use the Environment Hub in your business org (1) to create a Partner Development Edition (PDE) org (2).
  2. When you have the new PDE org, file a case in the Partner Community to request the Environment Hub app in the new org (3). This may take a couple of days.

Diagram showing business org with environment hub creating developer org, which then gets environment hub

Development, Beta Packaging, and Test Orgs

Throughout your business, you are going to use many different types of orgs. For now, we focus on development, packaging, and testing orgs, which you use in app development. Packaging is the first step in distributing your app to customers.

Here’s a simple example using these three types of orgs during development.

  • You and your team develop your app in Partner Development Edition (PDE) orgs (1). How many PDE orgs do you set up? It depends on your needs and the number of developers in your team.
  • You merge configurations from the PDE orgs to a single beta packaging org (2) using a Salesforce migration tool.
Note

Note

Unlike our customers, AppExchange partners do not use sandboxes in development, so change sets can’t be used for deployment between your orgs.

  • In the beta packaging org (3), you create Managed - Beta packages for testing your app.
  • You install the beta package in a test org (4). The test org edition is based on the edition of your target customer. You can have multiple test orgs.
  • If you find issues, you and your team return to development in the PDE orgs.

Diagram showing application moving from developer org to beta package org to test org

When development is done, create a Managed - Released package in your beta packaging org. Send it to a fresh test org for a final check.

The Golden Package Org

When your app is ready to launch, you create your final packaging org. We call this org the “golden package” org, because it’s important in the life of your app. You have only one golden package org per product, regardless of how many versions of the product you have.

You move your app to the golden package org using a migration tool (1). You then create a Managed - Released package (2) and perform at least one quality assurance run by installing the package into a fresh test org (3).

Diagram showing app going from developer org to beta package org to golden package org to test org

Off to the AppExchange

When your app is happily bundled in its managed package, you publish it privately on the AppExchange (1). It then goes through security review, which we’ve left out of the diagram. When it’s approved, you publicly publish the app. From there, customers install the package in their orgs (2).

Diagram showing app going from golden package org to AppExchange to customers

How Do These Orgs Map to Non-Cloud Development Models?

Check out this table to see how your orgs map to non-cloud development environments.

Non-cloud Environment
Salesforce Org Edition
Who
Why?
Individual Development
Partner Developer Edition orgs
Developer
These orgs provide the full range of functionality for creating your app.
Continuous Build
Partner Developer Edition org—a beta packaging org
Release Manager
Use this org to bring together development code, package it, and push it to test orgs. It must be a PDE org to create a managed package.
Testing
Group Edition, Professional Edition, Enterprise Edition orgs
Quality Assurance Engineer or Business Analyst
Test your app in the org editions that your customers use.
Staging, Packaging, and Release
Partner Developer Edition org—the golden packaging org
Release Manager
This org isn’t quite a staging environment, but it’s the launch pad from which your app will fly! It must be a PDE org to create a managed package.
User Acceptance Testing
Group Edition, Professional Edition, Enterprise Edition orgs
Product Manager
Use this org for final sign-off before your app goes live.

Although we didn’t show it in our simplified path, we highly recommend storing metadata in a source control system, particularly if you’re working with multiple developers. You can use systems like Github or SVN, and you can find apps on the AppExchange designed for Salesforce.

Note

Note

If you’re looking on the AppExchange, make sure that the version control system supports partner development. As we mentioned earlier, our customers use sandboxes in development, which are a bit different.

Some Questions Answered

Why does the business org have an Environment Hub app?

You can create many types of orgs with the Environment Hub app. For example, your sales teams can create demo orgs, and your operations team can create Trialforce Management orgs. Because these teams are usually in the business org, having an Environment Hub app in the business org is useful.

Why can’t I use the same Partner Development Edition org for my Environment Hub app, development, and packaging?

Maintaining separate orgs based on their use case supports a proper release process and adds security. The org containing the Environment Hub—the development management org—is used for creating and managing orgs. You might not want everyone to use it. And allowing development in that org leads to chaos!

Using an org that is solely for development allows developers to explore Salesforce and build your app without treading on anyone’s toes.

Your packaging org is like the printing plate for currency. You want to keep this org in a pristine, steady state and only modify it when your app is ready for release or update. Remember, when you release your app from this org, you use this org to package your app forever. So you want to lock down this org as much as possible.

One final note: Having the Environment Hub app in an org that contains a managed package can cause issues when creating a package version or pushing a package upgrade to your customers. So don’t even think of packaging in your development management org.

All that being said, some small teams use the same org for development and packaging. We use the same org in this module to make your life easier, but we don’t recommend it as a general practice.

What if my team is used to a different configuration of environments?

The configuration we’ve described here is just an example. You can use different configurations depending on your needs.

Summing It Up

The configuration described here is just an example. You can use different configurations depending on your needs.

  1. Create a PDE org for development management from your business org.
  2. Enable the Environment Hub app in the development management org.
  3. Create PDE orgs for development.
  4. Create a PDE org for combining configurations and creating beta packages for testing.
  5. Create test orgs that match your target editions.
  6. Create a PDE org to use as your Golden Package org.
  7. Create UAT (test) orgs for testing your golden package.

This process includes over seven different orgs—and you are likely to use even more.

We haven’t talked about all the orgs available to AppExchange partners, just those orgs used during development. And we’ve only introduced the Environment Hub app, not others used in selling your app, such as the License Management app.

What’s Next

In the next units, we dive into using the Environment Hub app, creating packages, and setting up test orgs. To get the most out of these units, make sure that you do the following.

To Do
How?
Sign up as an AppExchange Partner
See Getting Started with the AppExchange Partner Program in the AppExchange Partner Basics module
Make sure you have an org with the Environment Hub app
See Taking Advantage of Tools and Resources for AppExchange partners in the AppExchange Partner Basics module

Get your badge, then you’re off to play with the Environment Hub.

retargeting