Flatt's Favorite Development Tools 2024
2024-01-02 21:37
CONTENTS
- My Ode to Scott Hanselman
- Why Do Tools Matter?
- By Requirement
- By License Type
- By Security
- By Category
- The Tools
- Visual Studio
- Visual Studio Code
- Git for Windows
- PowerBI Desktop
- SQL Server Developer
- SQL Server Management Studio
- PowerShell 7.x
- LINQPad
- 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
- Ditto
- Balsamiq Wireframes
- UltraFileSearch
- FreeCommander XE
- Oracle VirtualBox
- Inkscape
- Paint.Net
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.
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
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
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
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
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
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
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.