8 Essential Tools for .NET Development

Having worked for a while in the .NET platform with different projects, and under different priorities, I felt like sharing the essential tools for .NET I use most on a daily basis.

Hopefully, this article will be of some help to most newcomers to the .net platform and to all of those who look for a little productivity boost with helpers and automation tools used in their daily workflow.

Photo by Alex Knight / Unsplash

1. First things first, Visual Studio

As a .NET developer, Visual Studio is by far the most complete IDE I’ve found out there. Out of all the IDEs I have tried, it is the one that provides me with the highest amount of productivity due to well-designed features like code completion, code hints, quick access to the definition of objects, and its debugging and profiling capabilities. It also contains a very intuitive interface that interacts with different source controls like Git, making it very easy to visualize and manage branches.

Visual Studio UI Example from Microsoft Docs

2. Postman, not the postal service

Postman is an http client that I have been using for a while now, it basically provides me with a nice testing environment for http calls against any APIs, be that local or remote. I’ve got to say I tend to use only the most basic things on Postman, like executing rest calls and organizing requests on folders for each service or API. But Postman has much more to offer, including different options of automated testing, environment variables, and even a command-line interface. So it’s definitely something that you would want to spend some time checking out.

Photo by Mick Haupt / Unsplash

3. VS Code - The lightweight alternative

VS Code(Visual Studio Code) is the alternative to Visual Studio which I currently use whenever I’m not coding heavy stuff on .NET. If I feel like executing a lightweight IDE for a small .NET Core app, or code on any other platform (Maybe NodeJS or Python), VS Code will be my IDE of choice. The IDE is just very simple, straightforward, gives you a fast editor, and most of the good features of the standard Visual Studio like IntelliSense and autocomplete features, code refactoring, and others. On top of that, VS Code fills the gap of Visual Studio by being able to not only run on Windows but also on Mac and Linux. It also has a very active open source community, built-in support for JavaScript, Typescript, NodeJS, and a very rich ecosystem of plugins.

Photo by Avinash Murugappan / Unsplash

4. VS Code Rest Client

By using VS Code, I’m also taking advantage of its rich extensions and using things like VS Code Rest Client. This extension basically allows me to quickly test any http rest endpoint and view its response without ever leaving VS Code. So no more switching between IDE and Postman or CURL.
Rest Client just needs a small .http file with your rest call in order to be able to execute it:

POST https://yourendpoint/goes/here
content-type: application/json

{
    "field1": "info1",
    "field2": "info2"
}

An example of a GET call:

Example of a GET request on Rest Client

5. Git bash: Linux on Windows

Git bash emulates a bash environment on any windows machine. It will most likely be installed by default in your machine if you are running windows and have installed git for windows in your machine. I use this one as one of my main terminal interfaces, mainly for the bash commands and the easy access to utilities like CURL.

Photo by Jefferson Santos / Unsplash

6. LINQPad: A .NET playground

LINQPad is basically a .NET playground with superpowers. It allows me to quickly test any c#, f#, or VB code snippet. Which ends up being very good for prototyping quick ideas in a .NET environment. It also allows me to query SQL databases using the LINQ language instead of SQL, and store each query or code snippet in a local organized folder.

Example of Code Snippet on LINQPad

7. NodeJS: A JS Runtime

Well, yes. Even as a .NET developer, NodeJS is one of the tools I use most. Anytime a quick proof of concept or API draft is needed, NodeJS will be my go-to tool. Given the flexible nature of NodeJS and JavaScript, it is just way easier to create it right on the spot. NodeJS also allows me to run a bunch of open source tools that really speeds up my development process on .NET. For instance, if I need to stub a remote API easily so that my .NET application consumes that API, I can quickly set that up with a bunch of raw response files and an instance of http-server running on NodeJS. Using it in combination with Visual Studio Code can be the perfect combo for quick prototypes and ideas!

Photo by Lewis Kang'ethe Ngugi / Unsplash

8. Docker: Virtualization is everything

I have been using Docker and Docker containers locally now for around a year or so(…yes, somewhat late for the party). It just amazes me how easily I can set up a local database or a whole development environment just with docker containers without ever really needing to install any extra application. Even things like MS SQL Server can run in a docker container smoothly nowadays, and on top of that Visual Studio Code has a great set of extensions that interact very well with Docker and docker containers, giving you full control of each container and image from the IDE itself.

Photo by Cameron Venti / Unsplash

Final Thoughts

I believe most of the tools here are well known in subsets of the development community but throughout the years I’ve seen few using them together in a .NET development environment. This is slowly changing though, as the .NET open-source community is growing and bringing these different tools to the table. If you haven’t tried using them together I really encourage you to do so and maybe share your thoughts as well!


Resources

  1. Visual Studio — https://visualstudio.microsoft.com/pt-br/vs/community/
  2. Postman — https://www.postman.com/downloads/
  3. VSCode — https://code.visualstudio.com/download
  4. VSCode Rest Client — https://marketplace.visualstudio.com/items?itemName=humao.rest-client
  5. Git bash & Git for windows — https://gitforwindows.org/
  6. LINQPad — https://www.linqpad.net/Download.aspx
  7. NodeJS — https://nodejs.org/en/download/
  8. Docker — https://docs.docker.com/get-docker/