17+ Must Have .NET Developer Tools - The Essential List
In the series:
- .NET Blogs to Follow
- Great .NET Conferences to Attend
- List of the Best Free Visual Studio Extensions
- Best Visual Studio Code Extensions
- 17+ Must Have .NET Developer Tools (this post)
This post is about most of the tools I use as a .NET developer. As always, let me know if you think something is missing. I'm always on the lookout for new tools to help me be a better developer. Let's get started with my list of must have .NET developer tools (in random order).
Think apt-get for Windows or applications in NuGet. Chocolatey lets you install all sorts of Windows tools from the command line. I personally don't dislike msi files, but sometimes it's just easier to install missing tools from the command line. Chocolatey works great for creating an
Install.ps1 script for your team too. Installing everything on a fresh PC saves you a bunch of time and ensures everyone is using the same versions.
You won't get much street credit when mentioning Visual Studio, but it is still the most advanced development environment for .NET out there. Code is quickly catching up, though. I do all of my primary development in VS and use Code for quickly previewing files and non-C# development.
As an alternative to Visual Studio, you might want to check out Rider. It is developed by the guys at JetBrains and has all of the nice features of ReSharper built in.
If you ever started Visual Studio and created a new console app, just to try out a few lines of code, you need LINQPad. Being named LINQPad, it does actually provide some features to try out LINQ code against a database. I use it exclusively for executing one or more lines of C#.
Like mentioned in the post about extensions for Visual Studio Code, Code Runner for Code is a good alternative to LINQPad.
Let's face it. Visual Studio with R# is just better then without. I'm continuously trying to convince myself not to spend the bucks on R# but end up coming back. It's pretty expensive, but once you have it, you won't go back. I would pay just for the improved unit test runner available in R# (looking at you and your Test Explorer window, Microsoft).
Alongside R#, JetBrains develops a great set of tools. My favourites are dotPeek (after Redgate bought and commercialized .NET Reflector), dotTrace and dotCover.
I know most IDEs are able to format JSON files. But I often find myself Googling json formatter and clicking on the first result. It's usually JSON Formatter & Validator by Curious Concept. The service quickly validates, formats and presents a nicely structured JSON output.
If you are using Azure Service Bus, the open source tool Service Bus Explorer by Paolo Salvatori, is a great tool. It might not have the slickest UI (I cannot design Windows UI either), but it's great for browsing queues/topics, dealing with dead-letter queues and much more.
Another essential Azure tool is Azure Storage Explorer. Browse blob, queue, table and file storage directly in the app. I often use the Azure portal for quick browsing blobs, but when needing to look inside the blobs, upload new content, etc., Storage Explorer is superior in most ways. The tool is developed by Microsoft and is available for all major operation systems.
The expression "A picture is worth a thousand words" dates back to 1911. If animated gifs had been invented back then, the expression would have been "A picture is worth a thousand words and an animated gif even more". I use animated gifs all the time and yes I know about more modern formats like WebP, WebM, and similar, but gifs just work anywhere. ScreenToGif is a nice little open source project developed by Nicke Manarin. It places itself on top of the content to record, thus sending a quick animation to a co-worker or producing content for this blog suddenly become a piece of cake.
In the never-ending line of editors, one of the bests is (IMO) Notepad++. Notepad++ supports syntax highlighting for a large range of programming languages and there's a great ecosystem around creating plugins. I might switch entirely to Visual Studio Code at some point, but right now, Notepad++ is still launched multiple times a day on my machine.
Postman is the best test client for executing HTTP requests. Period! The tool moved from being a Chrome extension to a self-hosted tool some years back. Postman matured into an awesome tool with support for all sorts of authentication, team support, and much more.
Maybe not that related to .NET, but every mobile, Windows and web app contains PNG images these day. PNGGauntlet lets you create the smallest possible sized PNGs with no loss in quality. What's not to like? What I really like about PNGGauntlet, compared to the Visual Studio extensions out there, is that you can optimize images in batches.
I started using Git, back when there were no good UI for Windows. Rather than talking about how old I am, let me introduce you to a good Git UI for Windows: GitHub Desktop. Unlike what you may think, GitHub Desktop works with any Git repository and not just the ones cloned from GitHub. I mostly use the command line or Visual Studio for my Git needs, but GitHub Desktop has some nice features and visualizations for sure.
Remember the days when you wrote all your scripts in bat-files? With PowerShell, all of our scripting needs have been covered. You may dislike the slightly weird syntax, but everything supports PowerShell these days. I use PowerShell for everything that needs to be scripted on elmah.io.
Bonus info: I'm surprised how many people don't know about the built-in PowerShell editor - Windows PowerShell ISE. Right click any ps1 file and hit Edit.
Now that GitHub Desktop no longer seems to install its Git Shell, you can install the same thing manually (easiest using Chocolatey). PoshGit is a PowerShell module that integrates Git commands into PS. What's really nice about this module is, that you will get an improved summary of changes displayed at all times.
NDepend is the best code analyzer available (IMO). I haven't used the tool these last few years, but I'm very much looking into the changes being added to the product. NDepend now runs entirely inside Visual Studio (previously a Windows application). elmah.io customers get 10% discount on NDepend.
For debugging communication between services, Fiddler by Telerik is an invaluable tool. Fiddler is a proxy that sits in between services and intercepts all of the communication going on. I cannot count the number of times Fiddler has revealed some essential details, that in the end helped me debug a problem.
While Visual Studio comes with a pretty good experience when it comes to browsing NuGet packages, NuGet Package Explorer is a great addition. You can quickly browse a previously unknown feed, download NuGet packages to the disk and even create packages manually.
regex101 is a great online tool for writing and debugging regular expressions. I usually try to stay as far away from regex as possible, but sometimes you just need to write some good old cryptic code that no-one will ever be able to understand in the future :) I've used Expresso for Windows previously, but regex101 provides a similar yet simpler UI.
We are currently using the built-in NuGet Server in Visual Studio Team Services. But MyGet is a great alternative that I have used in the past. Using MyGet, you can create public (or private) NuGet, npm,Bower and other types of feeds. It's free for public feeds and very reasonably priced for private. Did I mention that there's a 15% MyGet discount as an elmah.io customer? ;)
I have been using all sorts of source control systems (GitHub, GitLab, Bitbucket, etc.), issue trackers (Trac, Jira, YouTrack, etc.) and build servers (CruiseControl.NET, TeamCity, etc.). I must admit that Microsoft Team Foundation Server and even the first versions of Visual Studio Online (now VSTS) always seemed like a joke to me. But in the recent years, VSTS simply replaced every of the mentioned tools. It took some years, but today it is AWESOME!
This post was brought to you by the elmah.io team. elmah.io is the best error management system for .NET web applications. We monitor your website, alert you when errors start happening and help you fix errors fast.