Salesforce DX (SFDX): What is it? Why should we use it?
Salesforce without version control:
Imagine a world without version control. Scary right? But that’s how it has been for Salesforce since the beginning. For those who have never worked with a version control system and are wondering what the hell is it, think of it as a safe deposit box for your code with an ability to travel in the past. For more details visit Getting Started About Version Control. So, going back, Salesforce didn’t have a way to track changes or maintain a version control to begin with. One might ask the question why? It is pretty obvious, isn’t it? Salesforce started primarily as a CRM tool where the most changes you would do were just configuration changes. A little drag and drop here and there and you are ready. Change sets were good enough back then. Maintaining changes wasnt that difficult.
Customisations!! Soon the customers started to realise the customisation potential of Salesforce. They started coming up with requirements which could no longer be delivered with just drag and drop or simple configurations. In the beginning it was just a little bit but eventually the amount of coding implementations started increasing. To the point where multiple developers needed to work on the same file. You know where I am going with this. Everyone started realising the need for a VCS.
The initial attempts at implementing a version control:
Salesforce was yet to implement a VCS, so people started doing it on their own. And it was messy and a hassle and the developers were over-burdened. How? People started using Force.com IDE (Eclipse) which was integrated to Salesforce via the CLI. But there were 2 problems which I could think of at that time.
- This approach couldnt track the configuration changes.
- Force.com IDE had no support for intellisense.
Imagine working as a developer your whole life on IDEs like Visual Studio Editions (hands down the best IDEs ever!!), NetBeans, Sublime Text, (even Eclipse for Java) and then being stuck with an IDE which has no support for Intellisense (for Apex). Bummer!! Because of this, developers would write everything in Developer Console, copy the same thing and paste it in the local file in Force.com IDE and then commit and push. Sometimes they would forget. Imagine the double burden on the developers?? This was a very, very poor approach and sometimes the developers had little say in it.
Enter Salesforce DX (SFDX) with Visual Studio Code (VS Code):
I am not gonna go into the formal definitions and such. But now with SFDX and VS Code you can track all your changes!! Be it the ones you’re making in your IDE (VS Code) or even in your org! (Scratch org). And you can easily push all these tracked changes to your VCS! No more maintaining changes in an excel sheet manually!! Freedom from all that extra counter productive non-sense and more time to focus on the actual implementations! And syncing changes across your VCS, IDE and scratch org is easy peasy! right from your IDE!
Are you itching to get started? See it in action? wanna know how even you could be free from all this manual crap and get everything automated and cool? Coming up right in my next post!