There are some posts that I look forward to getting on my soapbox, and others that are for storing infomation I think I'll find useful later. I'm noticing the information posts do tend to rate better, but I enjoy my soapbox more.

Setting up a new machine can take a while. Try to remember all the software you need, download each one by one, install, configure. It can take forever! The solution is SCRIPTING!

There are a few ways to automate and a few months ago, I would have recommended Chocolatey. Actually, I still do. However, there have been shots fired from Microsoft at the last Build, introducing App Installer (WinGet). I think it will be worth watching.

For now, go and get Chocolatey and install. To use Chocolatey effectively, there are a few things to consider:

  1. Use an Administrator prompt. (I recommend Powershell)
  2. Use -y to install without prompts. Better still, run choco feature enable -n allowGlobalConfirmation to set it globally.

Utilities

First, let's get some utilities in place. I have picked the following utilities that I want on all my machines:

  1. 7 Zip
  2. TreeSize Free
  3. Paint.Net
  4. Spotify
  5. Chrome
  6. Microsoft Edge
  7. Firefox
  8. 1Password
  9. Sublime Text
  10. Greenshot
  11. Windows Terminal

To install:

$ choco install 7zip treesizefree paint.net spotify googlechrome microsoft-edge firefox 1password sublimetext3 greenshot microsoft-windows-terminal

Social

Next, I want my social applications. This includes any applications I use to communicate, including video recording.

  1. Skype
  2. Slack
  3. Microsoft Teams
  4. Zoom
  5. OBS Studio

To install:

$ choco install skype slack microsoft-teams zoom obs-studio

Development

Finally, I'm looking at the heavy lifting. Take note that I'm not installing SQL Server or other heavy applications. I want to use Docker to download and run these kinds of resources in containers.

  1. git
  2. git-lfs
  3. poshgit
  4. nvm
  5. vscode
  6. dotnetcore-sdk
  7. postman
  8. docker-desktop
  9. azure-cli
  10. microsoftazurestorageexplorer
  11. azure-data-studio
  12. nswagstudio
  13. linqpad
  14. visualstudio2019community
  15. sqlitestudio
  16. python
  17. kubernetes-helm
  18. kubernetes-cli
  19. pulumi
  20. ngrok
  21. intellijidea-ultimate
  22. openjdk17
  23. maven

To install:

$ choco install git git-lfs poshgit nvm vscode dotnetcore-sdk postman docker-desktop azure-cli microsoftazurestorageexplorer azure-data-studio nswagstudio linqpad visualstudiocommunity2019 sqlitestudio python kubernetes-helm kubernetes-cli pulumi ngrok intellijidea-ultimate openjdk17 maven
$ nvm install latest

Non-Chocolatey

While it would be great to have all my applications installed with a single script, there are still some applications that don't have a Chocolatey install.

  1. Adobe XD - It's free Photoshop-like design software. Awesome for planning out the design of a web page for different screen sizes. I'm not good with it yet, but I'm very interested in learning.

Summary

Chocolatey can install applications and windows features to ensure a development machine is set up the same way each time. It's so much faster than manually downloading and installing each application as you remember it. Instead, all of the work is in keeping and maintaining the list of applications that need to be installed. Where possible, use Chocolatey to install rather than installing a downloaded file.

To find an application, use:

$ choco search "<search string>"

To check what has been installed locally:

$ choco list -l

To check local chocolatey installs as well as other applications:

$ choco list -li

Happy hunting~ installing!