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.
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.
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.
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.
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:
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.
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.
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!
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.
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
- Visual Studio — https://visualstudio.microsoft.com/pt-br/vs/community/
- Postman — https://www.postman.com/downloads/
- VSCode — https://code.visualstudio.com/download
- VSCode Rest Client — https://marketplace.visualstudio.com/items?itemName=humao.rest-client
- Git bash & Git for windows — https://gitforwindows.org/
- LINQPad — https://www.linqpad.net/Download.aspx
- NodeJS — https://nodejs.org/en/download/
- Docker — https://docs.docker.com/get-docker/