1. What is Salesforce DX?
Salesforce DX (Developer Experience) is tool with the ability to consider source code management as source of truth.Source-Driven Development.This allows users to develop and manage Salesforce apps across the entire platform in a more direct, efficient way.
Build together and deliver continuously is tag line for Salesforce DX.
Build together and deliver continuously is tag line for Salesforce DX.
Note : For Changeset, Metadata API or Force.com IDE, source of truth is Sandbox.
Implement By :
Implement By :
- Salesforce CLI [Command Line Interface] / Salesforce Extension for VS Code (Light weight editor) : You can use the CLI or Salesforce Extensions for VS Code to open your scratch org in a browser without logging in.
- Scratch Orgs : The scratch org is a source-driven and disposable deployment of Salesforce code and metadata.Facilitate's automated testing and continuous integration.
2. Why is it ?Why your client start adopting it?
- Current metadata is not isolated or organized in a way that makes it easy to upgrade and maintain.
- SFDX force to create a well defined packages, Which are versionable and easy to maintain, update, install, and upgrade. With this updates and customization are much easier to manage across your development team
- Automated Data load between Orgs For Testing : We can avoid lot of manual work with data loader and other tools usage
- SFDX is future because its Salesforce official tool, So adopting to it is advisable
- SFDX packages for everyone (Customer/SF partner/Consultant/Contractor),Not like earlier packages were traditionally only for Salesforce Partners
3. What is Artifacts?
An artifact is a group of related code and customization's.
- The use of version control is at the heart of all modern development practices(.Net/Java).
- It’s the basic prerequisite for automating deployments, testing, quality and security analysis.
- Most important work will not be lost.
Dev Hub : Allows you to create and manage scratch orgs.
Note : This can be enabled in any paid(Prod/Business) org & Also in Developer /Trail Org
Scratch Org : This is a source driven and disposable deployment of Salesforce code and metadata,Made for developers and automation.
Life Span: Scratch Org are ephemeral in nature,Max - 30 Days,Default - 7 Days7. Is there any additional cost to enable Dev Hub ?
No
8. How to setup SFDX ?
1.Enable Dev Hub
2.Create Scratch Org
3. Install Salesforce CLI,Download
4. Install Salesforce Extension for Visal Studio Code,Download
5. Install Git Hub / Other source safe,Download
9. What is Salesforce CLI ,Mention few key benefits & Installation guidelines?
1.After successful installation,An exe file should be available in below path
Salesforce CLI: This is a powerful command line interface that simplifies development and build automation when working with Salesforce Org.
Key Benefits :- Package development process from the command line.
- This is "Salesforce CLI" not the "Salesforce DX CLI" ,Which means this can be used against any org not only to Scratch Org.
- This combines many capabilities from across several Salesforce API's
- Metadata API
- Tooling API
- Data(SOAP) API
- It also supports the functionality of ANT migration tool,Which allows scripting the metadata tasks.
- Synchronize source to and from scratch orgs
- Create and Manage orgs
- Import and Exports data
- Create and Execute tests
- Create and Install packages
1.After successful installation,An exe file should be available in below path
Go To --> C:\Program FIles \ Saleforce CLI \ bin
2.Add environment path variable
Go To --> Windows Search --> Edit Environment Variables For Your Account
Go To --> Windows Search --> Edit Environment Variables For Your Account
10. What is Salesforce Extension for VS Code?
This extension pack includes tools for developing on the Salesforce platform in the lightweight, extensible VS Code editor. These tools provide features for working with development orgs (scratch orgs, sandboxes, and DE orgs), Apex, Aura components, and Visualforce.
11. Is there any limit on number of Scratch Org Creation ?
Yes,To ensure optimal performance.
Active Scratch Org Vs Daily Scratch Org
1.Active Scratch Org : @ any point you can not have more than the number of active (Non-Expired & Non-Deleted) scratch orgs as given below based on license.
2. Daily Scratch Org : These are the allowed number how many can be created each day.
Ex: 200 for unlimited But can have active 100,So delete 100 and create new 100,Again u can delete upto 100 and allowed to create new 100 per day.After that if u delete 1 and try to create new 1 it will not allow since you have completed daily quota of 200 scratch org creation,Need to wait till next day.
12. Scratch Org VS Sandboxes?
Scratch Org compliments Sandboxes but do not replace them.
Sandbox
|
Scratch Org
|
Immortal (Living forever) in nature
|
Ephemeral (Lasting for very short time) in nature
|
Production,Integration Testing,Full Copy staging will use sandbox
|
Development,SIT phase best to use Scratch Org
|
All developers of the project team work in same org,Difficult to track the changes done by individual.
|
Each developer will have a dedicated scratch org which helps easy tracking of changes.
|
Sandbox doesn’t support “Source Synchronization”.
Ex:If developer miss to commit few changes from org to version control will lose the track & Later face difficulty while deployment and it’s very difficult to find under development for a long time.
|
Scratch Orgs support "Source Synchronization", which means you can just run `sfdx force:source:pull` and `sfdx force:source:push` to synchronize metadata between version control and your org.
|
13. Version control,CI CD can be done using Sandbox based development process also then why SFDX ?
Yes,Many clients are already setup version control and CD using Sandbox based dev process.But in that scenario,version control necessarily lags behind the development org,
And development sandboxes are the actual source of truth.That can be overcomes by using SFDX.The scratch org are ephemeral which forces developers to not relay on the org,But instead to persist their work in version control.
14. SFDX Pros and Cons ?
Pros :
- SFDX
force to create a well-defined packages, Which are versionable and easy to
maintain, update, install, and upgrade. With this updates and
customization's are much easier to manage across your development team
- Automated Data load between Orgs For
Testing : We can avoid lot of manual work with data loader and other tools usage
- SFDX packages
for everyone (Customer/SF Partner/Consultant/Contractor),Not like earlier
packages were traditionally only for Salesforce Partners
- It provides
with an integrated, end-to-end lifecycle designed for high-performance
agile development
- It tracks any
change you make locally in the project and any changes you have made in
your scratch org
- Reduced
integration/testing time due to rapid setup of Scratch Orgs
- Facilitates
automated testing and continuous integration
- Environments
are easily created and disposable
- Use any tool
to modify code (CLI, Vim, Sublime, Atom etc)
- Modularizing
packages is very challenging for the existing big project
- New tool &
Few features might be missing but there is continuous improvements going
on this
- Takes bit of
time to adopt,New development cycle & Technology as VCS as source of
truth instead of sandbox
- Significant
learning & understanding is needed to start with
- Salesforce CLI installs locally
- If your application involves building an extension
package on top of existing managed package applications like Health Cloud,
CPQ ,Financial cloud etc .Some of these apps require specific
permission set licenses that are not available in scratch orgs yet .Also
these apps involve too many customization that its almost easier to create
sandbox environment from Trialforce templates for development than scripting
all these via DX .(Safe Harbor — There are snapshots and templates features
thats planned this might go away)
15. What is mean by SFDX keep track of Local & Scratch Org changes automatically?Then why do we need push and pull ?
It will keep track of changes and push or pull only those changes when command is performed ,
It will not do auto sync but keep the track of changes.
16. Why do we need to modularize the package ?
If we have more projects in one production org definitely have more metadata components.
And we will not able to say which metadata is part of which project.Maintenance is difficult.
Ex: 10K metadata components and modifying of one component not sure
where it will be impacted
Note : If we maintain naming conventions that may help to some extent to find the grouping
& Dependencies.
17. SFDX Limitations & Workarounds?
18. List few Salesforce CLI commands ?
Salesforce CLI Command
|
Details
|
List all available CLI commands
|
Sfdx force:doc:commands:list
|
To open scratch org,
The default user is admin without password,If requires password.
Note : Try this user login from other system CLI
|
sfdx force:org:open -u test-rnfwyhrua8ed@example.com
|
push (synchronize) your new code from local folder to the scratch org
|
sfdx force:source:push
|
synchronize changes in your local project to a scratch org with the alias MyScratchOrg | sfdx force:source:push -u MyScratchOrg |
To open the scratch org
|
sfdx force:org:open
|
Pulls the latest from scratch org to local folder
|
sfdx force:source:pull
|
Create a project
Ex:MyNew App
|
Sfdx force:project:create -n MyNewApp
|
Data transfer
Ex:Existing accounts
|
Sfdx force:data:tree:import -sobjecttreefiles data/Account.json
|
Show the expiration date of scratch org
|
sfdx force:org:display
|
Create a new Apex
Ex:NewClass
|
Sfdx force:apex:class:create -n newClass -d force-app/main/default/classes
|
Create new lightning component
|
Sfdx force:lightning:component:create - Listview -f force-app/main/default/aura
|
SFDX CLI command sfdx force:auth:web:login will not work if you’re trying to login to a sandbox org. This will open up a window to login.salesforce.com
Solution :
sfdx force:auth:web:login -r https://test.salesforce.com
sfdx force:auth:web:login -r https://test.salesforce.com -a DevSandbox
19. Use of "sfdx-project.json"?
Information required to track source and metadata with your scratch org
A Salesforce DX project has a specific structure and a configuration file that identifies the directory as a Salesforce DX project.
A Salesforce DX project has a specific structure and a configuration file that identifies the directory as a Salesforce DX project.
- sfdx-project.json
- config/project-scratch-def.json
- .forceignore
20. What are the different types of packages available in Salesforce?
Package Name
|
Details
|
Managed Package
|
|
Unmanaged Package
|
|
2nd Generation Package
| |
Locked Package
| |
Unlocked Package
|
21. Any additional cost for Salesforce DX ?
No,There is no additional cost.
22. What is Appirio DX ?
AppirioDX commands like adx sfdx:init can help by automating the entire process of creating these orgs, installing packages, pushing metadata, sample data, and configuration data, and assigning permission sets.
Reference:
https://developer.salesforce.com/events/webinars/adopting-salesforce-dx
https://medium.com/@mohitkumarsrivastav/auto-generate-package-xml-for-salesforce-application-development-deployment-e73eb53edf40
https://medium.com/@mohitkumarsrivastav/auto-generate-package-xml-for-salesforce-application-development-deployment-e73eb53edf40
ReplyDeleteTechforce services is a Salesforce Consulting Services in Australia Specialising in delivering end to end Salesforce solutions ,Consulting, Implementation DevOps partners in australia We deliver applications and services more rapidly and reliably, but it’s more than a methodology – it cuts to the very core.Salesforce Data Analytics let us help you become a data driven organisation and ensure your data is working hard for your business This includes implementi
Salesforce Consulting Services in Australia
Salesforce Staff Augmentation in Australia
Salesforce Data Analytics
DevOps Partners in Australia
Managed Projects Salesforce Australia