CONTENTS

My Ode to Scott Hanselman

Scott, you are right, this post took so long!
I could have coded an app. I could have written a song.
But I've yearned to promote my fave tools for years
For the public to read, even if nobody cares.

You're a tool nerd for sure, an App User Supreme
Trying utils in numbers I could only (of) dream.
You pointed the way, you're a software sensei,
Here's my kata in prose, my Tao (meaning "way").

You make coding real cool
Thank you, dude, and stay well.

Scott Hanselman's 2021 Ultimate Developer and Power Users Tool List for Windows - Scott Hanselman's Blog

Why Do Tools Matter?

Let me ask you something? Could you build a house using just a hand saw, hammer, manual drill, and ruler?

Well, sure you could. But why in the world would you?

The DevOps Research and Assessment (DORA) group have conistently found that when software teams can choose their own tools they are more productive and deliver higher quality work.

"Teams that can choose which tools to use do better at continuous delivery. No one knows better than practitioners what they need to be effective."

Developers are power users. In organizations, they need to be entrusted with the security privileges to easily install and remove software. That's part of their job. Which isn't to say their tools shouldn't be audited. That's good security. But security departments should partner with developers and operations to reduce friction to developing valuable software. That's a responsible use of time and funds. Removing barriers to tool choice, along with practical security measures, is analogous to letting your skyscraper contractors use whichever tools they need while following safety protocols.

Below are most of the tools I consider essential in my kit today. They've proven their worth over years and years. The list below includes some apps for SQL data reporting that may not be applicable to your environment. I'm missing several testing tools that the QA person on a team would require. Hopefully I can update with those in the future. I also include some design and testing tools that maybe you don't need to sling code but are valuable on a team. Or maybe you should try them and see!

I'm a Microsoft stack developer and my choices reflect that.

By Requirement

While all of the tools and utilities in this article are valuable, there are some without which development can't practically be done.

Must Have

  • Visual Studio
  • Visual Studio Code
  • Git for Windows
  • PowerBI Desktop
  • SQL Server Developer
  • SQL Server Management Studio
  • PowerShell 7
  • Insomnia
  • Telerik Fiddler
  • ShareX
  • Balsamiq Wireframes

High Value

  • Everything else!

Note It was hard leaving LINQPad out of the Must Have section. I'd hate to be without it; the ROI is incredibly high. But it's not--technically--essential.

By License Type

The only types listed here are Free and Licensed. Some apps (such as LINQPad) have free versions that aren't adequate for daily, high-performance use. In those cases, they're listed as Licensed.

Licensed

  • Visual Studio
  • LINQPad
  • Balsamiq Wireframes
  • UltraFileSearch

Free

  • Visual Studio Code
  • Git for Windows
  • PowerBI Desktop
  • SQL Server Developer
  • SQL Server Management Studio
  • PowerShell 7.x
  • Notepad++
  • Azure CLI
  • Windows Terminal
  • Windows Package Manager (winget)
  • NVM for Windows
  • ShareX
  • Microsoft Remote Desktop (RDC) Manager
  • 7-zip
  • Oh-My-Posh
  • KDiff3
  • Insomnia
  • Telerik Fiddler
  • FreeCommander XE
  • Oracle VirtualBox
  • Inkscape
  • Paint.Net

By Security

Many apps require UAC to install, but don't require admin rights to run. They may also require UAC with an exe/winget installer but also have portable versions. Apps are categorized below by least-needed privilege. For example, Git for Windows need UAC for the exe installer but not for portable, so it's listed under portable. Likewise if it's non-UAC but also has a portable, then the app is listed as portable.

While portable apps are viable, I recommend using an installer--winget is ideal!--whenever possible. This makes it much easier to keep software up to date and secure.

Install UAC = true

  • Visual Studio
  • PowerBI Desktop
  • SQL Server Developer
  • SQL Server Management Studio
  • Azure CLI
  • Windows Package Manager (winget)
  • NVM for Windows
  • 7-zip
  • KDiff3
  • Telerik Fiddler
  • Balsamiq Wireframes
  • UltraFileSearch
  • Oracle VirtualBox

Install UAC = false

  • Visual Studio Code
  • Oh-My-Posh

Portable

  • Git for Windows
  • PowerShell 7
  • LINQPad
  • Notepad++
  • Windows Terminal
  • ShareX
  • Microsoft Remote Desktop (RDC) Manager
  • Insomnia
  • Ditto
  • FreeCommander XE
  • Inkscape
  • Paint.Net

By Category

These categories are kind of loose, but helped me understand my own tool use.

Development

  • IDEs and Editors
    • Visual Studio
    • Visual Studio Code
    • LINQPad
    • Notepad++
  • Version Control
    • Git for Windows
  • Terminals and Shells
    • PowerShell 7.x
    • Windows Terminal
    • Oh-My-Posh
  • Software Management
    • Window Package Manager (winget)
    • NVM for Windows
  • Diff and Merge
    • KDiff3
  • Debugging
    • Insomnia
    • Telerik Fiddler
  • Other
    • Azure CLI
    • Microsoft Remote Desktop (RDC) Manager

Design

  • Balsamiq Wireframes
  • Visio
  • Inkscape
  • Paint.Net

Testing

  • Oracle VirtualBox

Data

  • PowerBI Desktop
  • SQL Server Developer
  • SQL Server Management Studio
  • Oracle IDE of some kind

General Utilities

  • 7-zip
  • Ditto
  • UltraFileSearch
  • Ditto
  • FreeCommander XE

Documentation and Support

  • ShareX

The Tools

Visual Studio

https://visualstudio.microsoft.com/downloads/

UAC: Y
COSTS: Free | Individual 45/user/mo | Enterprise 240/user/mo
INSTALLATION: exe, winget

DESCRIPTION

Visual Studio has provided perhaps the best IDE for decades. Not using it for most Microsoft stack development would be like not designing skyscrapers using computer-aided design.

Visual Studio Code

https://code.visualstudio.com/download

UAC: N
COSTS: Free
INSTALLATION: exe, winget, zip

DESCRIPTION

Several years ago Microsoft went from having the world's simplest text editor--Notepad--to creating one of the best text editors available on any platform. VS Code out of the box includes amazing features including file comparison and Git support. Its tens of thousands of extensions let you be super-productive.

Git for Windows

https://gitforwindows.org/

UAC: Y (exe, winget) N (zip) COSTS: Free
INSTALLATION: exe, winget, zip

DESCRIPTION

Git is the de facto version control system today and Git for Windows is the must-have tool for Windows users.

PowerBI Desktop

https://www.microsoft.com/en-us/download/details.aspx?id=58494

UAC: Y
COSTS: Free
INSTALLATION: exe, winget,

DESCRIPTION

If you're creating PowerBI reports, you need this application.

SQL Server Developer

https://www.microsoft.com/en-us/sql-server/sql-server-downloads

UAC: Y
COSTS: Free
INSTALLATION: exe, winget

DESCRIPTION

When developing against a SQL database there are two local choices: Developer or Express. Developer is the superior choice because it includes all the same features as SQL Server, letting you develop with parity.

SQL Server Management Studio

https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms

UAC: Y
COSTS: Free
INSTALLATION: exe, winget

DESCRIPTION

There are other really good SQL tools, but SSMS is still the best overall.

PowerShell 7.x

https://learn.microsoft.com/en-us/powershell/

UAC: Y (exe, msi, winget) N (zip, msixbundle, dotnet) COSTS: Free
INSTALLATION: exe, msi, winget, zip, msixbundle, dotnet

DESCRIPTION

There's a version of PowerShell that's pre-installed in Windows called, naturally, PowerShell for Windows. But the latest version of PowerShell--version 7--is what you want to use. It has new features and is cross-platform. It's also what's used by Azure DevOps Pipelines, so if you're writing PowerShell scripts for ADO you want to use the same version.

LINQPad

https://www.linqpad.net/

UAC: Y (exe, winget) N (zip)
COSTS: Free | Individual 125/major ver | Team 10-user 850/major ver
INSTALLATION: exe, winget, zip

DESCRIPTION

There are a few tools I always pay for because they save me (and my client or employer) ten times over. One of those is LINQPad. In truth, I only occassionally use it for database querying. I mostly use it for code prototyping, debugging, and utilities. I'd estimate using this tool saves me a couple hundred hours a year. You need to buy a license to get Intellisense and other features. It's a bargain.

Notepad++

https://notepad-plus-plus.org/downloads/

UAC: Y (exe, winget) N (zip) COSTS: Free
INSTALLATION: exe, winget, zip

DESCRIPTION

Nowadays I use VS Code for most of my text editing. But Notepad++ still has features that make it valuable to install. For example, it has excellent search-in-files where results are output to a separate pane. I've also found it integrates better into Git as the default editor for things like git commit --amend

Azure CLI

https://learn.microsoft.com/en-us/cli/azure/

UAC: Y
COSTS: Free
INSTALLATION: winget, msi

DESCRIPTION

Sometimes you can gain real automation benefits by writing command line tools. Accessing Azure Portal and Azure DevOps via a CLI is very helpful. Here's one use case: A script that runs a batch of DevOps pipelines.

Windows Terminal

https://learn.microsoft.com/en-us/windows/terminal/

UAC: N
COSTS: Free
INSTALLATION: winget, zip, msixbundle

DESCRIPTION

When Microsoft decided to finally create a professional terminal they delivered in spades. Windows Terminal can run many shells--command, PowerShell, Bash--in a modern tabbed interface. In Windows 11 it has offically replaced the ancient command prompt.

Windows Package Manager (winget)

https://learn.microsoft.com/en-us/windows/package-manager/winget/

UAC: Y
COSTS: Free
INSTALLATION: msixbundle

DESCRIPTION

Winget is apt-get for Windows. It's Microsoft's answer to Chocolaty. It's built into Windows 11. And it's categorized by Microsoft as a developer tool. It's the easiest way to install and upgrade local software, saving developers hours of time. It reduces friction to keeping software up-to-date, which is great for security. For onboarding, a simple script can be created that allows setting up a development machine in 20 minutes instead of two (or more!) hours.

In short, winget is a great productivity tool fully supported by Microsoft.

NVM for Windows

https://github.com/coreybutler/nvm-windows

UAC: Y
COSTS: Free
INSTALLATION: exe, winget, zip

DESCRIPTION

Developing apps using Node has a drawback: by default you can only have one version installed at a time. The solution is Node Version Manager (nvm) for Windows. This mighty tool needs to run with Admin privileges because it installs and switchs the currently active Node version. It's a critical, time-saving tool for situations like upgrading versions.

ShareX

https://getsharex.com/

UAC: Y (exe, winget) N (zip)
COSTS: Free
INSTALLATION: exe, winget, zip

DESCRIPTION

You can pay for SnagIt and get an adequate experience. Or you can not pay for ShareX and customize your experience to be super-efficient. The time to learn this tool is well worth it. I use screen shots every day for writing documentation, creating bug reports, posting questions to other developers. Taking and editing screen shots should be as frictionless as possible. No other tool I've used does it better. You can even perform decent OCR and make short screen recordings and GIFs (very helpful for training). ShareX probably saves me a hundred hours a year.

Microsoft Remote Desktop (RDC) Manager

https://learn.microsoft.com/en-us/sysinternals/downloads/rdcman

UAC: N
COSTS: Free
INSTALLATION: winget, zip

DESCRIPTION

Sometimes you only have to log into one or two servers using Remote Desktop. But other times you need to log into quite a few and bounce back and forth between them. That's when RDC Man, from the venerable Sysinternals (part of Microsoft), is your friend. It's just a way of launching and organizing RDP sessions, but man is it helpful!

7-zip

https://www.7-zip.org/download.html

UAC: Y
COSTS: Free
INSTALLATION: exe, msi, winget

DESCRIPTION

Windows has Zip decompression built in. But 7-zip is still the tool to install when you regularly deal with compressed files. And developers deal with compressed files all the time. It's the best utility for the job, plus the 7z compression is amazing.

Oh-My-Posh

https://ohmyposh.dev/

UAC: N
COSTS: Free
INSTALLATION: exe, winget, powershell

DESCRIPTION

I do most of my Git work at the command line. I take advantage of aliases and the power that Visual Studio and VS Code don't have. The smartest thing I did a couple of years ago was install Oh-My-Posh so I can, at a glance, know the status of my repo. Just this utility has saved me from making dumb mistakes that would have cost me hours of time. I'd be foolish not to use it.

KDiff3

https://download.kde.org/stable/kdiff3/?C=M;O=D

UAC: Y
COSTS: Free
INSTALLATION: exe, winget

DESCRIPTION

I'll admit right now I've never used Beyond Compare. I should evaluate it, for sure. In the meantime, what other file diff/merge tools are out there? VS Code does a good job and can be called from the Git CLI. Visual Studio's diff/merge isn't quite as good in my opinion. WinMerge--another free tool--is nice but doesn't open well from Git CLI. But it does compare folders, which VS and Code don't. And then there's KDiff3. It's hard to find the latest version of this tool, so use the link above. What I like about KDiff3 above the other tools is:

  • Opens quickly from Git CLI
  • Has the clearest 3-way merge experience
  • Shows character diffs
  • Has a good folder diff

Honestly, no tool magically resolves Git merge conflicts. They're all taking their best guess. So find a tool or two you like.

Insomnia

https://github.com/Kong/insomnia
https://insomnia.rest/

UAC: N
COSTS: Free | |Individual 5/mo | Team 12/user/mo INSTALLATION: exe, winget, zip

DESCRIPTION

Postman is the big name tool for testing web services (e.g. REST APIs). But I . . . kind of . . . don't like it. Insomnia just seems like a tool focused on making the work easier, not selling me licenses. In fact, to use it for free, download from GitHub, install choosing local, and use the local scratch pad. I admit, that path is a little hidden, but it's a great way to try out the tool long term.

For QA departments, Postman may be a smarter tool and maybe it's good for developers, too. But I'd give Insomnia a fair chance.

Telerik Fiddler

https://www.telerik.com/download/fiddler

UAC: Y
COSTS: Free
INSTALLATION: exe, winget

DESCRIPTION

I don't reach for Fiddler every day. But on those days I need to know exactly what's going on with my web app traffic, I could either guess for hours or I can run Fiddler and know if a few minutes. It's an essential tool for that reason.

Ditto

https://ditto-cp.sourceforge.io/

UAC: Y (exe, winget) N (zip)
COSTS: Free
INSTALLATION: exe, winget, zip

DESCRIPTION

A utility I didn't know I needed until I had it, Ditto was demonstrated to me by a colleague a couple of years ago. I'm amazed how often I use it, not only for simple cases (I copied something to the clipboard ten minutes ago and have since copied over it. Ditto lets me get that previous copy) but for some power-user situations. I've used it to make several dozen entries where I needed to use three or four different copy-paste operations. A real time-saver!

Balsamiq Wireframes

https://balsamiq.com/wireframes/desktop/

UAC: Y
COSTS: Trial | Individual 129/maj ver | Cloud 2 project 90/year, 20 project 490/year (unlim users)
INSTALLATION: cloud, exe, msi, winget (To install w/o UAC, VC Redist must already be installed)

DESCRIPTION

I love Balsamiq. I've used it for years. It's delightful. It's keyboard-centric, making it quick to create wireframes. The results are, by design, low-fidelity, which signals to customers and users "this is not the final design." The cloud version has collaboration features (which I haven't used). Most of all, the company has made it a joy to use.

UltraFileSearch

https://www.ultrafilesearch.com/

UAC:Y
COSTS: Trial | Individual 25/maj ver | Team(5) 20/user/maj ver
INSTALLATION: exe, msi, zip

DESCRIPTION

You can search for files and folders in Windows. You can even power search--sort of--using arcane commands. Or you can use a dedicated file search tool. VS Code has some capability in this regard, but UltraFileSearch is one I like a lot. It's worth paying for. I'm always suprised just how much I have to search source code. Visual Studio doesn't cut it for refined searching.

I also like FreeCommander's file search.

FreeCommander XE

https://freecommander.com/en/summary/

UAC: Y (exe, winget) N (zip)
COSTS: Free (x32) | Individual 20/year ver (x64)
INSTALLATION: exe, winget, zip

DESCRIPTION

One day awhile back I got tired of having a half dozen File Exporer windows open. Really tired. So I evaluated most of the "explorer replacements" out there and, while several were good, only one let me do everyting I wanted: dual-pane for files, tabs, a pane for favorites, and a pane for the tree.

FreeCommander does much more than file management, but just being able to have one window where I can easily switch folders? It's amazing how much it streamlines my work. It also has a really good file search (though I like UltraFileSearch a little better for power use), batch file renaming, and customizable tool bar where, for instance, I have a button to launch VS Code in the currently selected folder.

Oracle VirtualBox

https://www.virtualbox.org/

UAC: Y
COSTS: Free
INSTALLATION: exe, winget

DESCRIPTION

Back in the day--decades ago--I fell in love with VMWare Workstation. It was the first app that let you install an operating system inside an operating system. It was--and is--magical. But VMWare is now a behemoth. Filling the desktop user's need is VirtualBox. What good is it to a developer? Simply, it's a relatively quick way to test software simulating a regular user's machine. This can be critical for debugging. In fact, I used it while compiling this guide to test every software installation!

Inkscape

https://inkscape.org/

UAC: Y (exe, winget) N (zip)
COSTS: Free
INSTALLATION: exe, winget, zip

DESCRIPTION

By all means, pay huge amounts of money to Adobe if you're a professional corporate designer. But if you only occassionly need to create sophisticated vector graphics, Inkscape is legend. It takes some effort to learn--it doen't hold your hand--but it's worth the time.

Paint.Net

https://getpaint.net/download.html

UAC: Y (exe, winget) N (store, zip)
COSTS: Free | Individual 10/maj ver
INSTALLATION: exe, winget, store, zip (github)

DESCRIPTION

To repeat myself, by all means feed the Adobe leviathan. Photoshop is king. But for most developers, Paint.Net is plenty for basic photo retouching. It's a great tool.