Historically I have done all my development on Mac Os operating system. So I am mostly familiar with Unix based systems. Windows has always been something that I have avoided, since I don’t game and most of the stuff on Mac just works. So this year I started learning the C# and I have been blown away how nice the language and the ecosystem has been. This sparked my interest in trying out Windows and Visual Studio which is the home for most .NET developers. Following are the tools and apps I use for developing on windows.
Since I am most familiar with bash, I wanted to use bash as my shell on Windows. Turns out that I am not the first one wanting this functionality. Even though there are many solutions to this problem, the solution I came up with was using the WSL2. On top of wsl2, I downloaded Ubuntu, which you can conveniently download from Microsoft Store. The WSL2 will be out from the preview somewhere this year. Using WSL2 makes it more convenient to use Docker workflows in your development environment since it is shipping with real Linux kernel (Learn more about it here). So if your development workflow involves a lot of front end stuff, then everything should now be doable with wsl2.
Coming from mac I have come to love the homebrew, which is the package manager for the mac. Fortunately the Windows has Chocolatey, which gets the job done most of the times.
Apps
First of all, I needed a proper terminal for moving around in the file system.
Then I need Code Editors and IDE
- Visual Studio Enterprise 2019 (For .net development)
- Visual Studio code (For frontend)
- Jetbrains Toolbox
Sometimes it is convenient to use Git GUI for that I use sourcetree, which is free to download and use.
Sometimes you still want to use Powershell as your main shell. Most of the tooling that is available on the Unix systems are generally available on Windows aswell. For example Node version manager for Powershell can be found here. Also the default powershell look downright ugly. To improve it, just download oh-my-posh, which makes your terminal look much much nicer.