Top 10 Must-Have Tools for .NET Developers
After receiving a couple questions of what tools do I use, this post is far overdue. In my opinion, here are the top 10 must-have tools for .NET Developers
It doesn't matter whether you're a seasoned developer or a beginner who is interested in learning .NET, there are some tools you will require in your day-to-day use as a developer.
I've always said you need to have the proper tools to get the job done right. Sure, you can use Notepad, but in the long run, it won't make you productive. Even carpenters have their favorite tools to get the job done right.
The IT industry is no different. You need the best tools to produce the best results.
This list is based on a 20 year career of working with .NET and receiving opinions from a number of developers. I'm honestly surprised I didn't post something sooner.
These tools are what I consider to be the best-of-the-best. It doesn't matter if they're a beginner who is starting to learn .NET or someone who is experienced with .NET, you'll encounter these tools over your .NET journey.
With .NET hitting their 20-year anniversary and the 25th anniversary of Visual Studio coming up (March 17th), of course this is at the top of my list for various reasons.
It contains development tools for mobile, web, and desktop along with a fully-loaded debugger, diagnostic tools, out-of-the-box unit test runners, and the ability to extend it further to meet your needs with extensions.
I've watched it's capabilities grow over the years and I'm amazed at the Visual Studio Team and their commitment to out-doing themselves every year.
...which, by the way, I'm amazed again this year with Visual Studio 2022.
.NET seemed to get a bad rap as a GUI-driven language that only Visual Studio understood.
Then .NET Core came out with a CLI and editors started appearing integrating .NET capabilities.
With .NET Core becoming more lightweight and faster, why not revamp the editors as well?
Enter the little brother, Visual Studio Code.
More nimble, extensible, and provides more language features than just .NET.
While I don't spend a lot of time in VS Code, I do consider it to be a powerhouse in it's own right. It delivers intellisense, extensions, and it's own way of creating "workspaces."
3. ReSharper (in dotUltimate)
I've been using ReSharper for a long time. So much that I can't remember when I started (I promise, I don't work for the company). The latest review I did was ReSharper 9.
ReSharper is available as an extension for Visual Studio (not Code) making them more productive and efficient with their code. It also allows developers to refactor their code with even the fussiest of codebases.
If you feel there's a need for something else, developers have the ability to create extensions as well (I know...creating extensions for an extension).
I feel like it's taken the catalog of patterns from Refactoring: Improving the Design of Existing Code (on my top 10 books for .NET developers) and built a product around it.
NDepend's CQLINQ (Code Query for LINQ) is one of it's most outstanding features. For example, you can use LINQ to examine how many methods are in a namespace or how many lines of code are in a codebase.
It's an extremely useful tool for analyzing existing codebases at an architectural level.
Entity Framework is an ORM in .NET and uses LINQ for it's access to data. Unfortunately, there isn't a way to test LINQ queries.
Or is there?
LINQPad allows you to write and test Entity Framework queries in a "Notepad" fashion (I demonstrated this when analyzing Entity Framework performance).
You can run an expression, a collection of statements, or a program in either C#, VB, F#, or even SQL.
It's definitely better than creating console apps everywhere to test out a simple LINQ statement.
If you've ever lost code for an assembly or just want to see what's happening under the covers, .NET Reflector decompiles .NET code to recover lost source code.
If you are using Visual Studio (not Code), .NET Reflector can open other assemblies while debugging and trace into the code to find the issue which is great for bug hunters.
This is another critical tool when building libraries of APIs in your application.
Postman provides a full-blown API IDE so you can develop, catalog, and unit test your APIs.
The reason I have this on my list is because in my years of writing APIs, I've seen more companies using Postman than any other API tool.
8. SQL Server Management Studio (SSMS) / Azure Data Studio
Ok, yes, I'm cheating by including two here.
However, this should go without saying, but Visual Studio and SSMS go together like peanut butter and jelly. They've been inseparable for so long, you can't have one without the other (but you can!)
If you're building data-driven applications with Microsoft tools, SQL Server Management Studio usually is not far behind.
Now, when Visual Studio Code became popular, I feel the DBA's were complaining about their own lightweight editor since SQL Server Management Studio was built on top of the Visual Studio Framework and seemed a bit too heavy.
That's when the Azure Data Studio appeared.
Again, it's SSMS's little brother and almost mimics Visual Studio Code, but it's geared specifically for Database Administrators.
It allows DBAs to connect to numerous databases (not just SQL Server), allow notebooks, and even connections to Azure along with the standard extensions to build out an exceptional IDE based on how you work with data.
Since .NET Core became more CLI-ish and cross-platform, there wasn't any competition with Visual Studio for a while.
Once JetBrains had one IDE for one language (like PHPStorm or WebStorm), they took C# and built Rider.
For those looking for a Visual Studio replacement, this will be as close as you can come to a Visual Studio/ReSharper combo...and honestly, I see this as the new standard IDE for non-Windows platforms wanting to build C#/.NET applications or websites.
There are times when I feel like Git should be automatically installed on every computer. It makes the most sense on a developer's machine.
But alas, it's still an installable tool used with anything you want to version control.
Somehow I feel like we take it for granted.
Git is becoming so popular, Content Management Systems (CMS) are using it for their file storage since, by nature, it provides versions for content, provides rollbacks, and stores the content in a secure repository.
These are the tools I've treasured over the years and they've stood the test of time in my book.
Along with the amount of trust I put in these tools on a daily basis, they also give me a great sense of stability. I know the tool will do what I tell it to do and report back something helpful instead of "this does not work" and not offer suggestions.
I'm sure I missed one or two of your favorite tools, but these 10 are critical to how I work during the day in writing, analyzing, and refactoring code on a large scale.
What tool did I miss? Is it a small utility you use on a daily basis? Post your comments below and let's discuss (or debate).