SlideShare a Scribd company logo
Vivek M. Chawla, Peter Martin, Danny Chang
Salesforce DX 201
Advanced Implementation for ISVs
An end-to-end model for ISV application design and
developer workflow using SFDX, GitHub, CircleCI and
First-Generation Packaging
January, 2018
Forward-Looking Statement
Statement under the Private Securities Litigation Reform Act of 1995
This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if
any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the
forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections
of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of
management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments
and customer contracts or use of our services.
The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our
service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of
growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and
any possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain,
and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling
non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the
financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal year and in our quarterly report on Form
10-Q for the most recent fiscal quarter. These documents and others containing important disclosures are available on the SEC Filings section of the
Investor Information section of our Web site.
Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may
not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently
available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
Salesforce DX 201
Advanced Implementation for ISVs
Conceptual Prerequisites
Access to Dev Hub
Using the Salesforce CLI
Scratch Org Basics
CI/CD Core Concepts
First-Gen Packaging
Resources
bit.ly/enable-dev-hub
bit.ly/master-salesforce-cli
bit.ly/scratch-org-basics
bit.ly/ci-concepts
bit.ly/packaging-overview
Just getting started with Salesforce DX?
Trailhead
bit.ly/sfdx-trail
DX for ISVs Playlist
bit.ly/sfdx-for-isvs
Packaging 2 Beta
bit.ly/pkg2-beta-group
WATCH these videos... DO this Trail... TRY Packaging 2...
YouTube videos that show how to get started
with Salesforce DX, the Salesforce CLI and
how to adopt key features.
Take the Salesforce DX Trail - four modules
that dive into working with Version Control,
CI/CD, the CLI and tips for getting started.
✮ Extra credit ✮
Get an early start with Packaging 2 and you’ll
be in a great place to adopt once it goes GA!
Agenda
Meet the Salesforce DX TE Expert team
The challenge many ISVs face when adopting Salesforce DX
Three reasons ISVs should start adopting Salesforce DX today
Introduce an ISV-centric model for implementing Salesforce DX
Demo
Q&A
Vivek M. Chawla
@VivekMChawla
ISV Technical Evangelist ISV Technical Evangelist
Peter Martin
@dev4ce
Danny Chang
@DannySFDC
ISV Technical Evangelist
ISV TE Expert Team for Salesforce DX
ISV Technical Evangelist
Kees Heida
@kees_heida
Our 2018 Mission Statement
Help ISV Partners adopt Salesforce DX by providing concrete, prescriptive
examples and frameworks that are specific to ISV use cases while working
closely with Product Teams to ensure that ISVs have an internal voice
Important Resources for ISV Partners
ISV Technical Enablement for Salesforce DX
p.force.com/DX
The Challenge Many ISVs Face
When Adopting Salesforce DX
Developer Tooling BEFORE Salesforce DX
Introducing Salesforce DX!
How About This Instead?
Three Reasons ISVs Should Start
Adopting Salesforce DX Today
Salesforce DX is Better at Organizing Metadata Source
Easier to fix the “Happy Soup” problem
Well-Organized Source is a Prerequisite for Packaging 2
Second-generation Packaging (2GP) requires clear segmentation of code
Write code as if you were developing directly in your packaging org
Namespaced Scratch Orgs Allow Branched Development
ns_prefix
(Packaging)
ns_prefix
(Scratch 4)
ns_prefix
(Scratch 1)
ns_prefix
(Scratch 2)
ns_prefix
(Scratch 3)
Adoption Doesn’t Have to be “All or Nothing”
Modular Development
w/Projects, Scratch Orgs,
and Automated Packaging
But if you do want to go all-in, we’ve got you covered
Start Using the
Salesforce CLI and
VSCode
Leverage the Salesforce
CLI for Continuous
Integration and Delivery
SFDX-Falcon Playbook
An end-to-end, prescriptive model for ISV application
design and developer workflow using SFDX, Feature
Management, Git, and Continuous Integration
End-to-End ISV Development Lifecycle With Salesforce DX
Salesforce CLI
and Scratch Orgs
Git Based
VCS
Pull
Request
Continuous
Integration
Packaging
Org
Default Salesforce DX Project Directory Structure
sfdx-project
├─ config
│ └─ project-scratch-def.json
├─ force-app
│ └─ main
│ └─ default
│ ├─ aura
│ ├─ classes
│ └─ objects
├─ README.md
└─ sfdx-project.json
Files and directories created by force:project:create
Default Salesforce DX Package Directory
Target for new or converted SFDX source
Still have the “Happy Soup” problem
SFDX-Falcon Project Directory Structure
sfdx-project
├─ <ci-config>
├─ config
├─ data
├─ dev-tools
├─ mdapi-source
├─ sfdx-source
│ ├─ <namespace>
│ ├─ unpackaged
│ └─ untracked
├─ temp
├─ README.md
└─ sfdx-project.json
Salesforce DX project/repository organization strategies for ISVs
Important Reminder:
Salesforce DX can be used with any VCS/Host
And many more...
SFDX Project and VCS Repository Root
The SFDX-Falcon model uses Git + GitHub
SFDX-Falcon Project Directory Structure
sfdx-project
├─ <ci-config>
├─ config
├─ data
├─ dev-tools
├─ mdapi-source
├─ sfdx-source
│ ├─ <namespace>
│ ├─ unpackaged
│ └─ untracked
├─ temp
├─ README.md
└─ sfdx-project.json
Salesforce DX project/repository organization strategies for ISVs
Metadata and SFDX Source
mdapi-source contains source from MDAPI
retrieves and force:source:convert
sfdx-source holds all SFDX “package
directories” referenced by sfdx-project.json
SFDX-Falcon Project Directory Structure
Salesforce DX project/repository organization strategies for ISVs
sfdx-project
├─ <ci-config>
├─ config
├─ data
├─ dev-tools
├─ mdapi-source
├─ sfdx-source
│ ├─ <namespace>
│ ├─ unpackaged
│ └─ untracked
├─ temp
├─ README.md
└─ sfdx-project.json
Default Salesforce DX Package Directory
The name of this directory should be the
namespace prefix from your managed package
Specify this as your project’s default “package
directory” inside sfdx-project.json.
SFDX-Falcon Project Directory Structure
Salesforce DX project/repository organization strategies for ISVs
sfdx-project
├─ <ci-config>
├─ config
├─ data
├─ dev-tools
├─ mdapi-source
├─ sfdx-source
│ ├─ <namespace>
│ ├─ unpackaged
│ └─ untracked
├─ temp
├─ README.md
└─ sfdx-project.json
“Unpackaged” SFDX Source
Development metadata that is NOT intended
to be part of your managed package
Ideal for applying developer-friendly security
settings and for org-based developer tools
sfdx-project
├─ <ci-config>
├─ config
├─ data
├─ dev-tools
├─ mdapi-source
├─ sfdx-source
│ ├─ <namespace>
│ ├─ unpackaged
│ └─ untracked
├─ temp
├─ README.md
└─ sfdx-project.json
SFDX-Falcon Project Directory Structure
Salesforce DX project/repository organization strategies for ISVs
“Untracked” SFDX Source
Useful for working on experimental code
Synchronize source without being tracked by VCS
sfdx-project
├─ <ci-config>
├─ config
├─ data
├─ dev-tools
├─ mdapi-source
├─ sfdx-source
│ ├─ <namespace>
│ ├─ unpackaged
│ └─ untracked
├─ temp
├─ README.md
└─ sfdx-project.json
SFDX-Falcon Project Directory Structure
Salesforce DX project/repository organization strategies for ISVs
Continuous Integration Configuration
The SFDX-Falcon model uses CircleCI
Important Reminder:
Salesforce DX can be used with any CI Provider
And many more...
sfdx-project
├─ <ci-config>
├─ config
├─ data
├─ dev-tools
├─ mdapi-source
├─ sfdx-source
│ ├─ <namespace>
│ ├─ unpackaged
│ └─ untracked
├─ temp
├─ README.md
└─ sfdx-project.json
SFDX-Falcon Project Directory Structure
Salesforce DX project/repository organization strategies for ISVs
Developer Tools
Configurable shell scripts that help automate
common development and deployment tasks
Developer/environment-specific config vars are
untracked and allow for local customization
sfdx-project
├─ <ci-config>
├─ config
├─ data
├─ dev-tools
├─ mdapi-source
├─ sfdx-source
│ ├─ <namespace>
│ ├─ unpackaged
│ └─ untracked
├─ temp
├─ README.md
└─ sfdx-project.json
SFDX-Falcon Project Directory Structure
Salesforce DX project/repository organization strategies for ISVs
Data
Files (CSV, SObject tree, etc.) and/or
anonymous Apex for importing data
Temporary Files
Local use only (not tracked by VCS)
Stores output from scripts and CLI commands
A Deeper Look at
Organizing Your
SFDX Source
Get Ready for Packaging 2 by Organizing Your Source
Salesforce DX makes it easier to implement Force.com enterprise design patterns
SCHEMA
SERVICE LOGIC
FEATURE 1 FEATURE 2 FEATURE 3 FEATURE 4
DOMAIN LOGIC UTILITY LOGIC
Managed Package Directory Structure
<namespace>
├─ main
│ ├─ default
│ ├─ domain
│ ├─ schema
│ ├─ service
│ └─ utility
├─ feature-one
│ ├─ aura
│ └─ classes
├─ feature-two
├─ feature-three
└─ feature-four
Invest now to simplify the transition to Packaging 2
FEATURE
1
FEATURE
2
FEATURE
3
FEATURE
4
SERVICE LOGIC
DOMAIN LOGIC UTILITY LOGIC
SCHEMA
Managed Package Directory Structure
<namespace>
├─ main
│ ├─ default
│ ├─ domain
│ ├─ schema
│ ├─ service
│ └─ utility
├─ feature-one
│ ├─ aura
│ └─ classes
├─ feature-two
├─ feature-three
└─ feature-four
Invest now to simplify the transition to Packaging 2
Salesforce DX Package Directory
Contains all metadata from your managed package
Managed Package Directory Structure
<namespace>
├─ main
│ ├─ default
│ ├─ domain
│ ├─ schema
│ ├─ service
│ └─ utility
├─ feature-one
│ ├─ aura
│ └─ classes
├─ feature-two
├─ feature-three
└─ feature-four
Invest now to simplify the transition to Packaging 2
Main Module (Your Application’s Core)
Will become your app’s “core” package once
second-generation packaging (2GP) arrives
Should be buildable by itself
SERVICE LOGIC
DOMAIN LOGIC UTILITY LOGIC
SCHEMA
Managed Package Directory Structure
<namespace>
├─ main
│ ├─ default
│ ├─ domain
│ ├─ schema
│ ├─ service
│ └─ utility
├─ feature-one
│ ├─ aura
│ └─ classes
├─ feature-two
├─ feature-three
└─ feature-four
Invest now to simplify the transition to Packaging 2
Feature Modules
Each feature module becomes a package once
second-generation packaging arrives
Require the presence of main module to compile
(may also depend on other feature modules)
FEATURE
1
FEATURE
2
FEATURE
3
FEATURE
4
Demo
Putting it All Together: End-to-End Development With SFDX
Salesforce CLI
and Scratch Orgs
Git Based
VCS
Pull
Request
Continuous
Integration
Packaging
Org
Recap
The time for ISVs to start adopting Salesforce DX is NOW
SFDX-Falcon is an ISV-centric model for end-to-end development with Salesforce DX
Organizing your metadata and app-logic now gets you ready for Packaging 2
Three things you can do today to get started...
Fork the SFDX-Falcon Template to kick-start your project
bit.ly/sfdx-falcon-template
Clone and Test Drive the SFDX-Falcon Demo:
bit.ly/sfdx-falcon-demo
bit.ly/sfdx-falcon-group
Join the Partner-Only Chatter
Group for Help/Feedback
1
2
3
Salesforce DX 201 - Advanced Implementation for ISVs

More Related Content

What's hot

認定テクニカルアーキテクト取ろうぜ
認定テクニカルアーキテクト取ろうぜ認定テクニカルアーキテクト取ろうぜ
認定テクニカルアーキテクト取ろうぜ
Hiroki Sato
 
Salesforce marketing cloud
Salesforce marketing cloudSalesforce marketing cloud
Salesforce marketing cloud
ajay raz
 
Commerce Cloud 101
Commerce Cloud 101Commerce Cloud 101
Commerce Cloud 101
Gaurav Kheterpal
 
Set your Data in Motion with Confluent & Apache Kafka Tech Talk Series LME
Set your Data in Motion with Confluent & Apache Kafka Tech Talk Series LMESet your Data in Motion with Confluent & Apache Kafka Tech Talk Series LME
Set your Data in Motion with Confluent & Apache Kafka Tech Talk Series LME
confluent
 
Salesforce Streaming event - PushTopic and Generic Events
Salesforce Streaming event - PushTopic and Generic EventsSalesforce Streaming event - PushTopic and Generic Events
Salesforce Streaming event - PushTopic and Generic Events
Dhanik Sahni
 
Salesforce integration best practices columbus meetup
Salesforce integration best practices   columbus meetupSalesforce integration best practices   columbus meetup
Salesforce integration best practices columbus meetup
MuleSoft Meetup
 
Generically Call External Classes from Managed Packages
Generically Call External Classes from Managed PackagesGenerically Call External Classes from Managed Packages
Generically Call External Classes from Managed Packages
Salesforce Developers
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce data
Salesforce Developers
 
Salesforce sales cloud solutions
Salesforce sales cloud solutionsSalesforce sales cloud solutions
Salesforce sales cloud solutions
JanBask LLC
 
Introduction to Salesforce Platform - Basic
Introduction to Salesforce Platform - BasicIntroduction to Salesforce Platform - Basic
Introduction to Salesforce Platform - Basic
sanskriti agarwal
 
Salesforce Lightning workshop
Salesforce Lightning workshopSalesforce Lightning workshop
Salesforce Lightning workshop
Shivanath Devinarayanan
 
Salesforce Tutorial for Beginners: Basic Salesforce Introduction
Salesforce Tutorial for Beginners: Basic Salesforce IntroductionSalesforce Tutorial for Beginners: Basic Salesforce Introduction
Salesforce Tutorial for Beginners: Basic Salesforce Introduction
Habilelabs
 
Salesforce – Proven Platform Development with DevOps & Agile
Salesforce – Proven Platform Development with DevOps & AgileSalesforce – Proven Platform Development with DevOps & Agile
Salesforce – Proven Platform Development with DevOps & Agile
Sai Jithesh ☁️
 
Lwc presentation
Lwc presentationLwc presentation
Lwc presentation
Nithesh N
 
Forecasting Accurately with Salesforce Forecasting
Forecasting Accurately with Salesforce ForecastingForecasting Accurately with Salesforce Forecasting
Forecasting Accurately with Salesforce Forecasting
Dreamforce
 
Getting started with Marketing Cloud
Getting started with Marketing CloudGetting started with Marketing Cloud
Getting started with Marketing Cloud
sonumanoj
 
Decluttering your Salesfroce org
Decluttering your Salesfroce orgDecluttering your Salesfroce org
Decluttering your Salesfroce org
Roy Gilad
 
Cloud Computing And Salesforce
Cloud Computing And SalesforceCloud Computing And Salesforce
Cloud Computing And Salesforce
Abhishek Chikane
 
Introduction to Salesforce | Salesforce Tutorial for Beginners | Salesforce T...
Introduction to Salesforce | Salesforce Tutorial for Beginners | Salesforce T...Introduction to Salesforce | Salesforce Tutorial for Beginners | Salesforce T...
Introduction to Salesforce | Salesforce Tutorial for Beginners | Salesforce T...
Edureka!
 
Introducing the Salesforce platform
Introducing the Salesforce platformIntroducing the Salesforce platform
Introducing the Salesforce platform
John Stevenson
 

What's hot (20)

認定テクニカルアーキテクト取ろうぜ
認定テクニカルアーキテクト取ろうぜ認定テクニカルアーキテクト取ろうぜ
認定テクニカルアーキテクト取ろうぜ
 
Salesforce marketing cloud
Salesforce marketing cloudSalesforce marketing cloud
Salesforce marketing cloud
 
Commerce Cloud 101
Commerce Cloud 101Commerce Cloud 101
Commerce Cloud 101
 
Set your Data in Motion with Confluent & Apache Kafka Tech Talk Series LME
Set your Data in Motion with Confluent & Apache Kafka Tech Talk Series LMESet your Data in Motion with Confluent & Apache Kafka Tech Talk Series LME
Set your Data in Motion with Confluent & Apache Kafka Tech Talk Series LME
 
Salesforce Streaming event - PushTopic and Generic Events
Salesforce Streaming event - PushTopic and Generic EventsSalesforce Streaming event - PushTopic and Generic Events
Salesforce Streaming event - PushTopic and Generic Events
 
Salesforce integration best practices columbus meetup
Salesforce integration best practices   columbus meetupSalesforce integration best practices   columbus meetup
Salesforce integration best practices columbus meetup
 
Generically Call External Classes from Managed Packages
Generically Call External Classes from Managed PackagesGenerically Call External Classes from Managed Packages
Generically Call External Classes from Managed Packages
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce data
 
Salesforce sales cloud solutions
Salesforce sales cloud solutionsSalesforce sales cloud solutions
Salesforce sales cloud solutions
 
Introduction to Salesforce Platform - Basic
Introduction to Salesforce Platform - BasicIntroduction to Salesforce Platform - Basic
Introduction to Salesforce Platform - Basic
 
Salesforce Lightning workshop
Salesforce Lightning workshopSalesforce Lightning workshop
Salesforce Lightning workshop
 
Salesforce Tutorial for Beginners: Basic Salesforce Introduction
Salesforce Tutorial for Beginners: Basic Salesforce IntroductionSalesforce Tutorial for Beginners: Basic Salesforce Introduction
Salesforce Tutorial for Beginners: Basic Salesforce Introduction
 
Salesforce – Proven Platform Development with DevOps & Agile
Salesforce – Proven Platform Development with DevOps & AgileSalesforce – Proven Platform Development with DevOps & Agile
Salesforce – Proven Platform Development with DevOps & Agile
 
Lwc presentation
Lwc presentationLwc presentation
Lwc presentation
 
Forecasting Accurately with Salesforce Forecasting
Forecasting Accurately with Salesforce ForecastingForecasting Accurately with Salesforce Forecasting
Forecasting Accurately with Salesforce Forecasting
 
Getting started with Marketing Cloud
Getting started with Marketing CloudGetting started with Marketing Cloud
Getting started with Marketing Cloud
 
Decluttering your Salesfroce org
Decluttering your Salesfroce orgDecluttering your Salesfroce org
Decluttering your Salesfroce org
 
Cloud Computing And Salesforce
Cloud Computing And SalesforceCloud Computing And Salesforce
Cloud Computing And Salesforce
 
Introduction to Salesforce | Salesforce Tutorial for Beginners | Salesforce T...
Introduction to Salesforce | Salesforce Tutorial for Beginners | Salesforce T...Introduction to Salesforce | Salesforce Tutorial for Beginners | Salesforce T...
Introduction to Salesforce | Salesforce Tutorial for Beginners | Salesforce T...
 
Introducing the Salesforce platform
Introducing the Salesforce platformIntroducing the Salesforce platform
Introducing the Salesforce platform
 

Similar to Salesforce DX 201 - Advanced Implementation for ISVs

Dreamforce 2017: Salesforce DX - an Admin's Perspective
Dreamforce 2017:  Salesforce DX - an Admin's PerspectiveDreamforce 2017:  Salesforce DX - an Admin's Perspective
Dreamforce 2017: Salesforce DX - an Admin's Perspective
Mike White
 
Simplify your code with Salesforce DX and module development
Simplify your code with Salesforce DX and module developmentSimplify your code with Salesforce DX and module development
Simplify your code with Salesforce DX and module development
Salesforce Developers
 
Salesforce DX Update for ISVs (October 2017)
Salesforce DX Update for ISVs (October 2017)Salesforce DX Update for ISVs (October 2017)
Salesforce DX Update for ISVs (October 2017)
Vivek Chawla
 
Get Started with Salesforce DX!
Get Started with Salesforce DX!Get Started with Salesforce DX!
Get Started with Salesforce DX!
Salesforce Developers
 
TDX19 - Accelerate DevOps with GitLab and Salesforce
TDX19 - Accelerate DevOps with GitLab and SalesforceTDX19 - Accelerate DevOps with GitLab and Salesforce
TDX19 - Accelerate DevOps with GitLab and Salesforce
Doug Ayers
 
Salesforce DX for Accidential Admins
Salesforce DX for Accidential AdminsSalesforce DX for Accidential Admins
Salesforce DX for Accidential Admins
Martin Humpolec
 
Salesforce DX Pilot Product Overview
Salesforce DX Pilot Product OverviewSalesforce DX Pilot Product Overview
Salesforce DX Pilot Product Overview
Salesforce Partners
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer Highlights
Salesforce Developers
 
Building einstein analytics apps uk-compressed
Building einstein analytics apps   uk-compressedBuilding einstein analytics apps   uk-compressed
Building einstein analytics apps uk-compressed
rikkehovgaard
 
Salesforce DX with Visual Studio Code
Salesforce DX with Visual Studio CodeSalesforce DX with Visual Studio Code
Salesforce DX with Visual Studio Code
Thierry TROUIN ☁
 
SalesforceDX Demo by Manish
SalesforceDX Demo by ManishSalesforceDX Demo by Manish
SalesforceDX Demo by Manish
Manish Thaduri
 
Modern App Dev: Modular Development Strategies
Modern App Dev: Modular Development StrategiesModern App Dev: Modular Development Strategies
Modern App Dev: Modular Development Strategies
Salesforce Developers
 
Salesforce Lightning Design System
Salesforce Lightning Design SystemSalesforce Lightning Design System
Salesforce Lightning Design System
Durgesh Dhoot
 
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
Sudipta Deb ☁
 
Salesforce DX for admins - Sydney world tour
Salesforce DX for admins - Sydney world tourSalesforce DX for admins - Sydney world tour
Salesforce DX for admins - Sydney world tour
Techforce Services
 
ISV Monthly Tech Enablement (July 2017)
ISV Monthly Tech Enablement (July 2017)ISV Monthly Tech Enablement (July 2017)
ISV Monthly Tech Enablement (July 2017)
Salesforce Partners
 
Tdxgg18 summary presentation
Tdxgg18 summary presentationTdxgg18 summary presentation
Tdxgg18 summary presentation
Thierry TROUIN ☁
 
Managing Change With A Sensible Sandbox Architecture
Managing Change With A Sensible Sandbox ArchitectureManaging Change With A Sensible Sandbox Architecture
Managing Change With A Sensible Sandbox Architecture
Alexander Sutherland
 
Reusable Build Scripts for Managed Package Development (October 14, 2014)
Reusable Build Scripts for Managed Package Development (October 14, 2014)Reusable Build Scripts for Managed Package Development (October 14, 2014)
Reusable Build Scripts for Managed Package Development (October 14, 2014)
Salesforce Partners
 
TrailheaDX Global Gathering London 2018
TrailheaDX Global Gathering London 2018TrailheaDX Global Gathering London 2018
TrailheaDX Global Gathering London 2018
Keir Bowden
 

Similar to Salesforce DX 201 - Advanced Implementation for ISVs (20)

Dreamforce 2017: Salesforce DX - an Admin's Perspective
Dreamforce 2017:  Salesforce DX - an Admin's PerspectiveDreamforce 2017:  Salesforce DX - an Admin's Perspective
Dreamforce 2017: Salesforce DX - an Admin's Perspective
 
Simplify your code with Salesforce DX and module development
Simplify your code with Salesforce DX and module developmentSimplify your code with Salesforce DX and module development
Simplify your code with Salesforce DX and module development
 
Salesforce DX Update for ISVs (October 2017)
Salesforce DX Update for ISVs (October 2017)Salesforce DX Update for ISVs (October 2017)
Salesforce DX Update for ISVs (October 2017)
 
Get Started with Salesforce DX!
Get Started with Salesforce DX!Get Started with Salesforce DX!
Get Started with Salesforce DX!
 
TDX19 - Accelerate DevOps with GitLab and Salesforce
TDX19 - Accelerate DevOps with GitLab and SalesforceTDX19 - Accelerate DevOps with GitLab and Salesforce
TDX19 - Accelerate DevOps with GitLab and Salesforce
 
Salesforce DX for Accidential Admins
Salesforce DX for Accidential AdminsSalesforce DX for Accidential Admins
Salesforce DX for Accidential Admins
 
Salesforce DX Pilot Product Overview
Salesforce DX Pilot Product OverviewSalesforce DX Pilot Product Overview
Salesforce DX Pilot Product Overview
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer Highlights
 
Building einstein analytics apps uk-compressed
Building einstein analytics apps   uk-compressedBuilding einstein analytics apps   uk-compressed
Building einstein analytics apps uk-compressed
 
Salesforce DX with Visual Studio Code
Salesforce DX with Visual Studio CodeSalesforce DX with Visual Studio Code
Salesforce DX with Visual Studio Code
 
SalesforceDX Demo by Manish
SalesforceDX Demo by ManishSalesforceDX Demo by Manish
SalesforceDX Demo by Manish
 
Modern App Dev: Modular Development Strategies
Modern App Dev: Modular Development StrategiesModern App Dev: Modular Development Strategies
Modern App Dev: Modular Development Strategies
 
Salesforce Lightning Design System
Salesforce Lightning Design SystemSalesforce Lightning Design System
Salesforce Lightning Design System
 
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
 
Salesforce DX for admins - Sydney world tour
Salesforce DX for admins - Sydney world tourSalesforce DX for admins - Sydney world tour
Salesforce DX for admins - Sydney world tour
 
ISV Monthly Tech Enablement (July 2017)
ISV Monthly Tech Enablement (July 2017)ISV Monthly Tech Enablement (July 2017)
ISV Monthly Tech Enablement (July 2017)
 
Tdxgg18 summary presentation
Tdxgg18 summary presentationTdxgg18 summary presentation
Tdxgg18 summary presentation
 
Managing Change With A Sensible Sandbox Architecture
Managing Change With A Sensible Sandbox ArchitectureManaging Change With A Sensible Sandbox Architecture
Managing Change With A Sensible Sandbox Architecture
 
Reusable Build Scripts for Managed Package Development (October 14, 2014)
Reusable Build Scripts for Managed Package Development (October 14, 2014)Reusable Build Scripts for Managed Package Development (October 14, 2014)
Reusable Build Scripts for Managed Package Development (October 14, 2014)
 
TrailheaDX Global Gathering London 2018
TrailheaDX Global Gathering London 2018TrailheaDX Global Gathering London 2018
TrailheaDX Global Gathering London 2018
 

More from Vivek Chawla

Dreamforce 2019 Five Reasons Why CLI Plugins are a Salesforce Partners Secret...
Dreamforce 2019 Five Reasons Why CLI Plugins are a Salesforce Partners Secret...Dreamforce 2019 Five Reasons Why CLI Plugins are a Salesforce Partners Secret...
Dreamforce 2019 Five Reasons Why CLI Plugins are a Salesforce Partners Secret...
Vivek Chawla
 
Start a Developer Group and take TrailheaDX Home With You! (TDX'17)
Start a Developer Group and take TrailheaDX Home With You! (TDX'17)Start a Developer Group and take TrailheaDX Home With You! (TDX'17)
Start a Developer Group and take TrailheaDX Home With You! (TDX'17)
Vivek Chawla
 
Squash Bugs with the Apex Debugger (TDX'17)
Squash Bugs with the Apex Debugger (TDX'17)Squash Bugs with the Apex Debugger (TDX'17)
Squash Bugs with the Apex Debugger (TDX'17)
Vivek Chawla
 
Build Great Triggers Quickly with STP (the Simple Trigger Pattern)
Build Great Triggers Quickly with STP (the Simple Trigger Pattern)Build Great Triggers Quickly with STP (the Simple Trigger Pattern)
Build Great Triggers Quickly with STP (the Simple Trigger Pattern)
Vivek Chawla
 
Five Enterprise Best Practices That EVERY Salesforce Org Can Use (DF15 Session)
Five Enterprise Best Practices That EVERY Salesforce Org Can Use (DF15 Session)Five Enterprise Best Practices That EVERY Salesforce Org Can Use (DF15 Session)
Five Enterprise Best Practices That EVERY Salesforce Org Can Use (DF15 Session)
Vivek Chawla
 
San Diego Salesforce User Group - Lightning Overview
San Diego Salesforce User Group - Lightning OverviewSan Diego Salesforce User Group - Lightning Overview
San Diego Salesforce User Group - Lightning Overview
Vivek Chawla
 
Salesforce Development Best Practices
Salesforce Development Best PracticesSalesforce Development Best Practices
Salesforce Development Best Practices
Vivek Chawla
 

More from Vivek Chawla (7)

Dreamforce 2019 Five Reasons Why CLI Plugins are a Salesforce Partners Secret...
Dreamforce 2019 Five Reasons Why CLI Plugins are a Salesforce Partners Secret...Dreamforce 2019 Five Reasons Why CLI Plugins are a Salesforce Partners Secret...
Dreamforce 2019 Five Reasons Why CLI Plugins are a Salesforce Partners Secret...
 
Start a Developer Group and take TrailheaDX Home With You! (TDX'17)
Start a Developer Group and take TrailheaDX Home With You! (TDX'17)Start a Developer Group and take TrailheaDX Home With You! (TDX'17)
Start a Developer Group and take TrailheaDX Home With You! (TDX'17)
 
Squash Bugs with the Apex Debugger (TDX'17)
Squash Bugs with the Apex Debugger (TDX'17)Squash Bugs with the Apex Debugger (TDX'17)
Squash Bugs with the Apex Debugger (TDX'17)
 
Build Great Triggers Quickly with STP (the Simple Trigger Pattern)
Build Great Triggers Quickly with STP (the Simple Trigger Pattern)Build Great Triggers Quickly with STP (the Simple Trigger Pattern)
Build Great Triggers Quickly with STP (the Simple Trigger Pattern)
 
Five Enterprise Best Practices That EVERY Salesforce Org Can Use (DF15 Session)
Five Enterprise Best Practices That EVERY Salesforce Org Can Use (DF15 Session)Five Enterprise Best Practices That EVERY Salesforce Org Can Use (DF15 Session)
Five Enterprise Best Practices That EVERY Salesforce Org Can Use (DF15 Session)
 
San Diego Salesforce User Group - Lightning Overview
San Diego Salesforce User Group - Lightning OverviewSan Diego Salesforce User Group - Lightning Overview
San Diego Salesforce User Group - Lightning Overview
 
Salesforce Development Best Practices
Salesforce Development Best PracticesSalesforce Development Best Practices
Salesforce Development Best Practices
 

Recently uploaded

Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 

Recently uploaded (20)

Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 

Salesforce DX 201 - Advanced Implementation for ISVs

  • 1. Vivek M. Chawla, Peter Martin, Danny Chang Salesforce DX 201 Advanced Implementation for ISVs An end-to-end model for ISV application design and developer workflow using SFDX, GitHub, CircleCI and First-Generation Packaging January, 2018
  • 2. Forward-Looking Statement Statement under the Private Securities Litigation Reform Act of 1995 This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services. The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and any possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site. Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
  • 3. Salesforce DX 201 Advanced Implementation for ISVs Conceptual Prerequisites Access to Dev Hub Using the Salesforce CLI Scratch Org Basics CI/CD Core Concepts First-Gen Packaging Resources bit.ly/enable-dev-hub bit.ly/master-salesforce-cli bit.ly/scratch-org-basics bit.ly/ci-concepts bit.ly/packaging-overview
  • 4. Just getting started with Salesforce DX? Trailhead bit.ly/sfdx-trail DX for ISVs Playlist bit.ly/sfdx-for-isvs Packaging 2 Beta bit.ly/pkg2-beta-group WATCH these videos... DO this Trail... TRY Packaging 2... YouTube videos that show how to get started with Salesforce DX, the Salesforce CLI and how to adopt key features. Take the Salesforce DX Trail - four modules that dive into working with Version Control, CI/CD, the CLI and tips for getting started. ✮ Extra credit ✮ Get an early start with Packaging 2 and you’ll be in a great place to adopt once it goes GA!
  • 5. Agenda Meet the Salesforce DX TE Expert team The challenge many ISVs face when adopting Salesforce DX Three reasons ISVs should start adopting Salesforce DX today Introduce an ISV-centric model for implementing Salesforce DX Demo Q&A
  • 6. Vivek M. Chawla @VivekMChawla ISV Technical Evangelist ISV Technical Evangelist Peter Martin @dev4ce Danny Chang @DannySFDC ISV Technical Evangelist ISV TE Expert Team for Salesforce DX ISV Technical Evangelist Kees Heida @kees_heida
  • 7. Our 2018 Mission Statement Help ISV Partners adopt Salesforce DX by providing concrete, prescriptive examples and frameworks that are specific to ISV use cases while working closely with Product Teams to ensure that ISVs have an internal voice
  • 8. Important Resources for ISV Partners ISV Technical Enablement for Salesforce DX p.force.com/DX
  • 9. The Challenge Many ISVs Face When Adopting Salesforce DX
  • 10. Developer Tooling BEFORE Salesforce DX
  • 12. How About This Instead?
  • 13. Three Reasons ISVs Should Start Adopting Salesforce DX Today
  • 14. Salesforce DX is Better at Organizing Metadata Source Easier to fix the “Happy Soup” problem
  • 15. Well-Organized Source is a Prerequisite for Packaging 2 Second-generation Packaging (2GP) requires clear segmentation of code
  • 16. Write code as if you were developing directly in your packaging org Namespaced Scratch Orgs Allow Branched Development ns_prefix (Packaging) ns_prefix (Scratch 4) ns_prefix (Scratch 1) ns_prefix (Scratch 2) ns_prefix (Scratch 3)
  • 17. Adoption Doesn’t Have to be “All or Nothing” Modular Development w/Projects, Scratch Orgs, and Automated Packaging But if you do want to go all-in, we’ve got you covered Start Using the Salesforce CLI and VSCode Leverage the Salesforce CLI for Continuous Integration and Delivery
  • 18. SFDX-Falcon Playbook An end-to-end, prescriptive model for ISV application design and developer workflow using SFDX, Feature Management, Git, and Continuous Integration
  • 19. End-to-End ISV Development Lifecycle With Salesforce DX Salesforce CLI and Scratch Orgs Git Based VCS Pull Request Continuous Integration Packaging Org
  • 20. Default Salesforce DX Project Directory Structure sfdx-project ├─ config │ └─ project-scratch-def.json ├─ force-app │ └─ main │ └─ default │ ├─ aura │ ├─ classes │ └─ objects ├─ README.md └─ sfdx-project.json Files and directories created by force:project:create Default Salesforce DX Package Directory Target for new or converted SFDX source Still have the “Happy Soup” problem
  • 21. SFDX-Falcon Project Directory Structure sfdx-project ├─ <ci-config> ├─ config ├─ data ├─ dev-tools ├─ mdapi-source ├─ sfdx-source │ ├─ <namespace> │ ├─ unpackaged │ └─ untracked ├─ temp ├─ README.md └─ sfdx-project.json Salesforce DX project/repository organization strategies for ISVs Important Reminder: Salesforce DX can be used with any VCS/Host And many more... SFDX Project and VCS Repository Root The SFDX-Falcon model uses Git + GitHub
  • 22. SFDX-Falcon Project Directory Structure sfdx-project ├─ <ci-config> ├─ config ├─ data ├─ dev-tools ├─ mdapi-source ├─ sfdx-source │ ├─ <namespace> │ ├─ unpackaged │ └─ untracked ├─ temp ├─ README.md └─ sfdx-project.json Salesforce DX project/repository organization strategies for ISVs Metadata and SFDX Source mdapi-source contains source from MDAPI retrieves and force:source:convert sfdx-source holds all SFDX “package directories” referenced by sfdx-project.json
  • 23. SFDX-Falcon Project Directory Structure Salesforce DX project/repository organization strategies for ISVs sfdx-project ├─ <ci-config> ├─ config ├─ data ├─ dev-tools ├─ mdapi-source ├─ sfdx-source │ ├─ <namespace> │ ├─ unpackaged │ └─ untracked ├─ temp ├─ README.md └─ sfdx-project.json Default Salesforce DX Package Directory The name of this directory should be the namespace prefix from your managed package Specify this as your project’s default “package directory” inside sfdx-project.json.
  • 24. SFDX-Falcon Project Directory Structure Salesforce DX project/repository organization strategies for ISVs sfdx-project ├─ <ci-config> ├─ config ├─ data ├─ dev-tools ├─ mdapi-source ├─ sfdx-source │ ├─ <namespace> │ ├─ unpackaged │ └─ untracked ├─ temp ├─ README.md └─ sfdx-project.json “Unpackaged” SFDX Source Development metadata that is NOT intended to be part of your managed package Ideal for applying developer-friendly security settings and for org-based developer tools
  • 25. sfdx-project ├─ <ci-config> ├─ config ├─ data ├─ dev-tools ├─ mdapi-source ├─ sfdx-source │ ├─ <namespace> │ ├─ unpackaged │ └─ untracked ├─ temp ├─ README.md └─ sfdx-project.json SFDX-Falcon Project Directory Structure Salesforce DX project/repository organization strategies for ISVs “Untracked” SFDX Source Useful for working on experimental code Synchronize source without being tracked by VCS
  • 26. sfdx-project ├─ <ci-config> ├─ config ├─ data ├─ dev-tools ├─ mdapi-source ├─ sfdx-source │ ├─ <namespace> │ ├─ unpackaged │ └─ untracked ├─ temp ├─ README.md └─ sfdx-project.json SFDX-Falcon Project Directory Structure Salesforce DX project/repository organization strategies for ISVs Continuous Integration Configuration The SFDX-Falcon model uses CircleCI Important Reminder: Salesforce DX can be used with any CI Provider And many more...
  • 27. sfdx-project ├─ <ci-config> ├─ config ├─ data ├─ dev-tools ├─ mdapi-source ├─ sfdx-source │ ├─ <namespace> │ ├─ unpackaged │ └─ untracked ├─ temp ├─ README.md └─ sfdx-project.json SFDX-Falcon Project Directory Structure Salesforce DX project/repository organization strategies for ISVs Developer Tools Configurable shell scripts that help automate common development and deployment tasks Developer/environment-specific config vars are untracked and allow for local customization
  • 28. sfdx-project ├─ <ci-config> ├─ config ├─ data ├─ dev-tools ├─ mdapi-source ├─ sfdx-source │ ├─ <namespace> │ ├─ unpackaged │ └─ untracked ├─ temp ├─ README.md └─ sfdx-project.json SFDX-Falcon Project Directory Structure Salesforce DX project/repository organization strategies for ISVs Data Files (CSV, SObject tree, etc.) and/or anonymous Apex for importing data Temporary Files Local use only (not tracked by VCS) Stores output from scripts and CLI commands
  • 29. A Deeper Look at Organizing Your SFDX Source
  • 30. Get Ready for Packaging 2 by Organizing Your Source Salesforce DX makes it easier to implement Force.com enterprise design patterns SCHEMA SERVICE LOGIC FEATURE 1 FEATURE 2 FEATURE 3 FEATURE 4 DOMAIN LOGIC UTILITY LOGIC
  • 31. Managed Package Directory Structure <namespace> ├─ main │ ├─ default │ ├─ domain │ ├─ schema │ ├─ service │ └─ utility ├─ feature-one │ ├─ aura │ └─ classes ├─ feature-two ├─ feature-three └─ feature-four Invest now to simplify the transition to Packaging 2 FEATURE 1 FEATURE 2 FEATURE 3 FEATURE 4 SERVICE LOGIC DOMAIN LOGIC UTILITY LOGIC SCHEMA
  • 32. Managed Package Directory Structure <namespace> ├─ main │ ├─ default │ ├─ domain │ ├─ schema │ ├─ service │ └─ utility ├─ feature-one │ ├─ aura │ └─ classes ├─ feature-two ├─ feature-three └─ feature-four Invest now to simplify the transition to Packaging 2 Salesforce DX Package Directory Contains all metadata from your managed package
  • 33. Managed Package Directory Structure <namespace> ├─ main │ ├─ default │ ├─ domain │ ├─ schema │ ├─ service │ └─ utility ├─ feature-one │ ├─ aura │ └─ classes ├─ feature-two ├─ feature-three └─ feature-four Invest now to simplify the transition to Packaging 2 Main Module (Your Application’s Core) Will become your app’s “core” package once second-generation packaging (2GP) arrives Should be buildable by itself SERVICE LOGIC DOMAIN LOGIC UTILITY LOGIC SCHEMA
  • 34. Managed Package Directory Structure <namespace> ├─ main │ ├─ default │ ├─ domain │ ├─ schema │ ├─ service │ └─ utility ├─ feature-one │ ├─ aura │ └─ classes ├─ feature-two ├─ feature-three └─ feature-four Invest now to simplify the transition to Packaging 2 Feature Modules Each feature module becomes a package once second-generation packaging arrives Require the presence of main module to compile (may also depend on other feature modules) FEATURE 1 FEATURE 2 FEATURE 3 FEATURE 4
  • 35. Demo
  • 36. Putting it All Together: End-to-End Development With SFDX Salesforce CLI and Scratch Orgs Git Based VCS Pull Request Continuous Integration Packaging Org
  • 37. Recap The time for ISVs to start adopting Salesforce DX is NOW SFDX-Falcon is an ISV-centric model for end-to-end development with Salesforce DX Organizing your metadata and app-logic now gets you ready for Packaging 2 Three things you can do today to get started...
  • 38. Fork the SFDX-Falcon Template to kick-start your project bit.ly/sfdx-falcon-template Clone and Test Drive the SFDX-Falcon Demo: bit.ly/sfdx-falcon-demo bit.ly/sfdx-falcon-group Join the Partner-Only Chatter Group for Help/Feedback 1 2 3