Recently, I had the opportunity to do a presentation for the Hamburg Developer Group on Introduction to SalesforceDX. If you have been developing in Salesforce for a while, you know what pain it can be managing several orgs / projects, code differences, org settings, etc. Thanks to MavensMate our life became a little less hard but it was still far away from ideal.
Current State of Development
- Multiple Developers working on an org. Multiple Development Environment (Dev, UAT, Staging, Production). Loading data for testing.
- Setting up a new Sandbox takes considerable time. Multiple features developed in one Sandbox
- Sandbox get out-of-date quiet fast with new features being deployed to Production regularly.
- No Version Control System. What’s committed cannot be rolled-back ( Unless a copy of Metadata is Saved )
Well, all that is about to change thanks to SalesforceDX. Welcome to the modern developer experience that will change the way you build Salesforce applications. Whether you're an individual developer or working in a large team, Salesforce DX provides you with an integrated, end-to-end lifecycle designed for high-performance agile development. And best of all, it's built to be open and flexible so you can build together with tools you love.
What SalesforceDX offers
1. Source Driven Development
With Salesforce DX, you can now benefit from modern collaboration technologies such as Git to version control everything across your team - your code, your org configuration, and your metadata.
2. Scratch Orgs FTW
You can say Scratch orgs are a more refined versions of your developer Sandboxes. Scratch Orgs are source-driven and you can literally fire up a new Scratch Org from the command line and start working. This drastically reduces the time of setting up a new environment.
3. Command Line Interface
Salesforce DX is completely build around a developers needs and we as developers like to do as much stuff with commands than clicks. SalesforceDX provides a powerful CLI ( command line interface ) which can be downloaded for all available systems. You can read more about it here
4. Rapid testing and development
You can quickly spin up a dedicated scratch org to test your code and, once you've validated your changes, you can use your own continuous integration tools to immediately test and promote your code. As soon as your tests are passing, you can merge your branch, build packages, and deploy to a staging sandbox for final testing.
5. Packaging 2.0
Salesforce DX introduces a new way to organize your metadata and distribute your apps. With Managed Packages, enterprise customers and partners can adopt a source-driven, CLI-centric approach to automate and manage the end-to-end lifecycle and deliver apps in a modern and efficient manner. Managed packages take full advantage of Salesforce DX tools including Scratch Orgs, the Salesforce CLI, and VS Code to improve the experience of your development team while working with the Salesforce Platform.
Salesforce DX is now generally available with the Winter '18 release. If your developers have not looked into it yet, I would recommend everyone to go through this trail.
I am slowly making a move to make all my new development work using DX and will share experiences in another post.
Please share your experience and questions if you have any below.