SlideShare a Scribd company logo
Farmington Hills Salesforce Developer User
Group
Salesforce Apex Hours - Modular
Application Development Using
Unlocked Packages
#SalesforceApexHours #FarmingtonHillsSFDCDug
Speaker :- Mohith Shrivastava, Amit Chaudhary
Date :- Saturday, March 2, 2018 10:00 AM EST
Venue/Link :- https://zoom.us/j/875155044
Who am I ?
Amit Chaudhary (Salesforce MVP)
• Founder of ApexHours
• Blogging at http://amitsalesforce.blogspot.in/
• Follow me @amit_sfdc
Our Speaker
Mohith Shrivastava
Salesforce MVP
Author “Learning Salesforce Lightning
Application Development”
Technical Architect - Codescience INC
Agenda
● Introduction To Salesforce Packaging
● Differentiate between unmanaged packages , managed packaged and unlocked
packages
● Modular Application Development Concepts
● Building unlocked packages using salesforce cli
● Publishing and Installing Unlocked packages
● Creating Dependency between packages
● References
● Q&A
Introduction To Packaging
● Packaging allows you to group various Salesforce Components (Apps ,
Tabs , Objects , Layouts , Workflows, Approval Process Flows , visualforce ,
apex , lightning components , profiles , permission sets and other
metadata) for distribution or deployment .
● A package can also be defined as a container and allows for
deployment of the components across various salesforce organizations.
● Salesforce Set up UI and Salesforce CLI allows for creation of these
● Package Creation yields a URL that allows it to install in various orgs
Differentiate between Unmanaged packages ,
Managed packaged and Unlocked packages
Unmanaged
Package
Not upgradable
Metadata elements are not IP
Protected
Can we created in Salesforce
UI
Unmanaged package
containers automatically pull
dependency
Managed
Package
Upgradable and has
namespace
Metadata elements are IP
Protected
Can be created in salesforce UI
and distributed via
appexchange
Components are locked and
one cannot modify them
directly in production or
sandbox
Allows for creation of extension
packages
Unlocked
Package
Upgradable and one can
namespace them or choose
not to
Metadata elements are not
locked and can be changed
by system admins
Requires Salesforce CLI to
generate them
Allows you to build your
applications in a modular way
Easier to manage when
codebase is modularized
Modular Application
Development Concepts
● Break Your one monolithic app to
multiple packages defining
dependency between them .
● Unlock packages allow you to do them
Credits To Salesforce Trailhead Team For this
diagram
Building Unlocked packages using Salesforce CLI
● Unlocked packages cannot be created using salesforce UI and requires knowledge of salesforce
CLI and requires source code in DX Source format .
● Scratch orgs are not required but a DevHub is mandatory . However scratch orgs are
recommended since the deployment to them is faster .
● One can create a package using below
sfdx force:package:create --name <name> --description <description> --packagetype Unlocked --
path force-app --nonamespace --targetdevhubusername <Devhubalias>
● Create a package version as below
sfdx force:package:version:create -p <packagename> -d force-app --wait 10 -v <Devhubalias>
Publishing and Installing Unlocked packages
● sfdx-project.json defines the Version Name and version number
● Installing can be using the Subscriber Package Version Id
● Installation can also be done via the Salesforce CLI
sfdx force:package:install --wait 10 --publishwait 10 --package <packagename>@1.0.0-1 -r
-u <alias>
● By Default a BETA package is generated . We can promote a package using below
sfdx force:package:version:promote -p <packagename>@1.0.0-1 -v <DevHubalias>
Creating Dependency between packages
● sfdx-project.json can be used to define dependency between packages
References
Created a Trail Mix with relevant Trailhead Module
App Development Guide
Dreamforce Session
4 part blog series on this topic from Salesforce Developer Evangelist Team
Thank You
Thank you for attending the session.
Follow us
#SalesforceApexHours @ApexHours
http://www.apexhours.com/
https://trailblazercommunitygroups.com/farmington-mi-
developers-group/
https://www.youtube.com/channel/UChTdRj6YfwqhR_WEFepkcJw/
videos
https://www.facebook.com/SalesforceApexHours

More Related Content

PPTX
Jakub Setfaniak: Write your own CTA scenario
PDF
مشروعات رقمنة مصادر المعلومات دراسة لتجارب المكتبات الوطنية الفرانكوفونية
DOCX
الاجهزة التعليمية القديمة والحديثة
PPTX
電源回路のデバイスモデリングとLTspiceを活用したノイズシミュレーション
PPTX
Gestion des réservations du consommable et des pannes
PDF
SCRT ISV Product Enablement
PPTX
خطة-الاخلاء خطة الاخلاء خطة الإخلاء.pptx
PDF
اختبارات شاملة فى اللغة العربية للصف الثالث الإعدادى لنصف العام 2018 ابن عاصم
Jakub Setfaniak: Write your own CTA scenario
مشروعات رقمنة مصادر المعلومات دراسة لتجارب المكتبات الوطنية الفرانكوفونية
الاجهزة التعليمية القديمة والحديثة
電源回路のデバイスモデリングとLTspiceを活用したノイズシミュレーション
Gestion des réservations du consommable et des pannes
SCRT ISV Product Enablement
خطة-الاخلاء خطة الاخلاء خطة الإخلاء.pptx
اختبارات شاملة فى اللغة العربية للصف الثالث الإعدادى لنصف العام 2018 ابن عاصم

Similar to Modular application development using unlocked packages (20)

PPTX
Salesforce DX for Admin v2
PPTX
Salesforce DX for admin
PPTX
Ahmadabad mule soft_meetup_6march2021_azure_CICD
PDF
MicroForntends.pdf
PPTX
Discover Salesforce Commerce Cloud and Vlocity Integration Patterns
PPTX
Salesforce Apex Hours :- Introduction to lightning components
PPTX
SFDC Lightning Demo
PPTX
Salesforce DX: A closer look - Part II
PPTX
Build sfdx plugin in 15 minutes
PPTX
Best practices for implementing CI/CD on Salesforce
PPTX
Live Session1 lightning web component
DOCX
Jawad's Resume
PDF
Salesforce Development Lifecycle: Detailed Phases
PPTX
Comment utiliser Visual Studio Code pour travailler avec une scratch Org
DOCX
Hareesh_Damodar
PDF
Lightning Workshop London
PDF
DevOps and Decoys How to Build a Successful Microsoft DevOps Including the Data
PDF
Salesforce, Slack, and Zendesk Integration with Mulesoft.pdf
PPTX
Indianapolis_meetup_April-1st-2022.pptx
PPTX
Salesforce DX for Non-Scratch Org
Salesforce DX for Admin v2
Salesforce DX for admin
Ahmadabad mule soft_meetup_6march2021_azure_CICD
MicroForntends.pdf
Discover Salesforce Commerce Cloud and Vlocity Integration Patterns
Salesforce Apex Hours :- Introduction to lightning components
SFDC Lightning Demo
Salesforce DX: A closer look - Part II
Build sfdx plugin in 15 minutes
Best practices for implementing CI/CD on Salesforce
Live Session1 lightning web component
Jawad's Resume
Salesforce Development Lifecycle: Detailed Phases
Comment utiliser Visual Studio Code pour travailler avec une scratch Org
Hareesh_Damodar
Lightning Workshop London
DevOps and Decoys How to Build a Successful Microsoft DevOps Including the Data
Salesforce, Slack, and Zendesk Integration with Mulesoft.pdf
Indianapolis_meetup_April-1st-2022.pptx
Salesforce DX for Non-Scratch Org
Ad

More from Mohith Shrivastava (20)

PDF
Best Practices with Apex in 2022.pdf
PPTX
Successfully retrieving metadata from salesforce org using packages
PPTX
Deep dive into salesforce connected app part 4
PPTX
Successfully creating unlocked package
PPTX
Implementing Einstein OCR
PPTX
Deep dive into salesforce connected app - part 2
PPTX
Deep dive into salesforce connected app part 1
PPTX
Org dependent salesforce packages
PPTX
Enhance salesforce application performance using lightning platform cache
PPTX
Become a rockstar admin
PPTX
Build your own dev tools with salesforce cli plugin generator
PPTX
Introduction to lightning Web Component
PPTX
Building Apps On Lightning
PPTX
Modular Salesforce Application Development Using DX
PPTX
Spring18 Lightning Component Updates
PPTX
Introduction To Service Cloud Snapins SDK
PPTX
Introduction to einstein analytics sdk for lightning
PPTX
Machine learning with salesforce data using prediction io
PPTX
Debugging lightning components-SEDreamin17
PPTX
Introduction to Analytics Cloud
Best Practices with Apex in 2022.pdf
Successfully retrieving metadata from salesforce org using packages
Deep dive into salesforce connected app part 4
Successfully creating unlocked package
Implementing Einstein OCR
Deep dive into salesforce connected app - part 2
Deep dive into salesforce connected app part 1
Org dependent salesforce packages
Enhance salesforce application performance using lightning platform cache
Become a rockstar admin
Build your own dev tools with salesforce cli plugin generator
Introduction to lightning Web Component
Building Apps On Lightning
Modular Salesforce Application Development Using DX
Spring18 Lightning Component Updates
Introduction To Service Cloud Snapins SDK
Introduction to einstein analytics sdk for lightning
Machine learning with salesforce data using prediction io
Debugging lightning components-SEDreamin17
Introduction to Analytics Cloud
Ad

Recently uploaded (20)

PPTX
Spectroscopy.pptx food analysis technology
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
cuic standard and advanced reporting.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Cloud computing and distributed systems.
PPTX
sap open course for s4hana steps from ECC to s4
PPTX
MYSQL Presentation for SQL database connectivity
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Big Data Technologies - Introduction.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Encapsulation theory and applications.pdf
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
Spectroscopy.pptx food analysis technology
Review of recent advances in non-invasive hemoglobin estimation
cuic standard and advanced reporting.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Cloud computing and distributed systems.
sap open course for s4hana steps from ECC to s4
MYSQL Presentation for SQL database connectivity
The Rise and Fall of 3GPP – Time for a Sabbatical?
Advanced methodologies resolving dimensionality complications for autism neur...
Big Data Technologies - Introduction.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
MIND Revenue Release Quarter 2 2025 Press Release
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Encapsulation theory and applications.pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Programs and apps: productivity, graphics, security and other tools
NewMind AI Weekly Chronicles - August'25 Week I
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Encapsulation_ Review paper, used for researhc scholars
Mobile App Security Testing_ A Comprehensive Guide.pdf

Modular application development using unlocked packages

  • 1. Farmington Hills Salesforce Developer User Group Salesforce Apex Hours - Modular Application Development Using Unlocked Packages #SalesforceApexHours #FarmingtonHillsSFDCDug Speaker :- Mohith Shrivastava, Amit Chaudhary Date :- Saturday, March 2, 2018 10:00 AM EST Venue/Link :- https://zoom.us/j/875155044
  • 2. Who am I ? Amit Chaudhary (Salesforce MVP) • Founder of ApexHours • Blogging at http://amitsalesforce.blogspot.in/ • Follow me @amit_sfdc
  • 3. Our Speaker Mohith Shrivastava Salesforce MVP Author “Learning Salesforce Lightning Application Development” Technical Architect - Codescience INC
  • 4. Agenda ● Introduction To Salesforce Packaging ● Differentiate between unmanaged packages , managed packaged and unlocked packages ● Modular Application Development Concepts ● Building unlocked packages using salesforce cli ● Publishing and Installing Unlocked packages ● Creating Dependency between packages ● References ● Q&A
  • 5. Introduction To Packaging ● Packaging allows you to group various Salesforce Components (Apps , Tabs , Objects , Layouts , Workflows, Approval Process Flows , visualforce , apex , lightning components , profiles , permission sets and other metadata) for distribution or deployment . ● A package can also be defined as a container and allows for deployment of the components across various salesforce organizations. ● Salesforce Set up UI and Salesforce CLI allows for creation of these ● Package Creation yields a URL that allows it to install in various orgs
  • 6. Differentiate between Unmanaged packages , Managed packaged and Unlocked packages Unmanaged Package Not upgradable Metadata elements are not IP Protected Can we created in Salesforce UI Unmanaged package containers automatically pull dependency Managed Package Upgradable and has namespace Metadata elements are IP Protected Can be created in salesforce UI and distributed via appexchange Components are locked and one cannot modify them directly in production or sandbox Allows for creation of extension packages Unlocked Package Upgradable and one can namespace them or choose not to Metadata elements are not locked and can be changed by system admins Requires Salesforce CLI to generate them Allows you to build your applications in a modular way Easier to manage when codebase is modularized
  • 7. Modular Application Development Concepts ● Break Your one monolithic app to multiple packages defining dependency between them . ● Unlock packages allow you to do them Credits To Salesforce Trailhead Team For this diagram
  • 8. Building Unlocked packages using Salesforce CLI ● Unlocked packages cannot be created using salesforce UI and requires knowledge of salesforce CLI and requires source code in DX Source format . ● Scratch orgs are not required but a DevHub is mandatory . However scratch orgs are recommended since the deployment to them is faster . ● One can create a package using below sfdx force:package:create --name <name> --description <description> --packagetype Unlocked -- path force-app --nonamespace --targetdevhubusername <Devhubalias> ● Create a package version as below sfdx force:package:version:create -p <packagename> -d force-app --wait 10 -v <Devhubalias>
  • 9. Publishing and Installing Unlocked packages ● sfdx-project.json defines the Version Name and version number ● Installing can be using the Subscriber Package Version Id ● Installation can also be done via the Salesforce CLI sfdx force:package:install --wait 10 --publishwait 10 --package <packagename>@1.0.0-1 -r -u <alias> ● By Default a BETA package is generated . We can promote a package using below sfdx force:package:version:promote -p <packagename>@1.0.0-1 -v <DevHubalias>
  • 10. Creating Dependency between packages ● sfdx-project.json can be used to define dependency between packages
  • 11. References Created a Trail Mix with relevant Trailhead Module App Development Guide Dreamforce Session 4 part blog series on this topic from Salesforce Developer Evangelist Team
  • 12. Thank You Thank you for attending the session.