In this article and here I’m going to talk about the advantages of using Visual Studio for .Net development and how and why should only be using Visual Studio if you’re a serious .NET developer.
When people talk about the benefits of using a .NET stack, developers can often argue for days about the pros and cons it has to offer. You will hear them saying how fantastic it is for horizontal scalability, the power of seamless language integrations etc. with belting resistance from the open source community about how you are locked-in to Microsoft, and the long term expense associated with migrating applications.
However one thing which developers often miss, is that by far the most useful advantage of .NET isn’t any intrinsic quality of the framework, but the seamless integrations and power of using integrated and streamlined tools by Microsoft. In particular Visual Studio.
I’m going to talk about what I think are the 5 most important benefits of Visual Studio .Net and how you can harness the software to get the most out of your Visual Studio .net development when compared to other IDE’s on the market.
1. Bitmap Visualizer
Bitmap Visualizer is a very efficient and easy to use tool for VisualStudio. It is a free plugin used and appreciated by a lot of developers because it makes debugging of the code that works with pictures a lot easier. Bytescout bitmap visualizer allows to view textual and visual content in .NET applications when you are debugging. With a few simple movements everything will be done quickly in a Debug mode.
2. IntelliSense
IntelliSense is a .Net developers dreams for anyone who wants to be a productive programmer (and let’s face it, productivity is important for .Net development). Visual studio comes with IntelliSense already on, out of the box. It has probably the best autocomplete and suggestions for any IDE on the planet. If you question how powerful IntelliSense can be, here is a challenge. Use IntelliSense for a week, and then turn it off for a day of development. You will be in awe at how much you miss it, and how much productivity is slowed down.
Another useful feature in Visual Studio .NET development from IntelliSense is the automatic code generation which lets you write code without being distracted from the thing you are actually writing. For example when you are using an unreferenced class library, you can right click and instantly include the library which should be referenced. If you start using an object for a class that doesn’t exist, right clicking on the error give you the option to create a class, the same is true with variables, and methods. This is extremely useful as it allows you to develop your models as your develop.
The list of features for IntelliSense doesn’t stop there for Visual Studio dot NET development. You can easily implement interfaces, create interfaces from classes you’ve already written, and more. The greatest thing about IntelliSense is that it never stops surprising you as it works in the background to make your development much easier.
3. Project Templates
Whether writing a portable .DLL, a web API, a fully-fledged MVC Application, or a mobile phone app, the .NET Visual Studio starter projects allow you to get started instantly with all the boiler plate code you need to build a project. At first this seems like just time saved, but as you use the default project templates you see that they’re also creating a structure for project types which is opinionated. This means if a new developer joins in the project they can spend less time figuring out how your project is setup, and more time contributing.
4. Testing
In a world where testing is king, and the reliability and robustness of software is dependent on having rigid and well written automated tests, dot NET Visual studio shines. In Visual studio .NET, the tight coupling between the test tools your projects makes dot net development smoother, and it comes with a few nice quirks.
All the tests can be run from within Visual Studio, with a nice GUI which lets you see failed tests, view tests which have not been run and to rerun all failed tests. The project structure makes it easy to reference other .DLLs. But this isn’t very impressive alone, it’s the other killer test features which make using Visual work wonders. When you are writing your automated tests, its often hard to get a sense of how much coverage you have, that is how much of your code and methods are actually been run in your automated test. This is an important metric and the Visual Studio .NET coverage tools give you all the insights you need to make informed decisions about this.
It’s not just Visual studio’s automated tests which are powerful, as some tests are just too complicated to be automated. For dot NET, Visual studio also supports manual testing, which allows you to record and playback manual tests.
5. Code Analysis Tools
Code reviews for dot NET development are often subjective, and understanding how well your code is written can help developers to write more maintainable and cleaner code. Visual studio comes with code analysis tools which will automatically review your code complexity by measuring things like coupling between classes to give you an overview of code complexity with just a few key metrics. These tools go a step further and provide you with a way to see how things such as Microsoft style rules are being respected. You can even configure code analysis to run automatically with your build and version control workflow, to automatically trigger code analysis.
6. Azure
One of the great things about Visual Studio, .NET and the direction which Microsoft is moving forward, is that you are being able to mix and match more with different software stacks, and not completely reliant on Microsoft, and that’s a good thing! So although you may prefer AWS over Azure for your cloud hosting, the tools Visual Studio supplies to integrate seamlessly with Azure make developing for the platform a breeze.
From within Visual Studio you can immediately deploy your applications to Docker containers, to IIS servers, publish databases to Azure all within Visual Studio. This is the least you’d expect from Visual Studio for developing .NET applications. You can also spin up dev machines from within Visual Studio itself.
When building applications for the web, one of the most challenging problems is always scale, and it’s up to us as developers to come up with clever solutions and understand the technology and bottlenecks to scaling. When developing for .net, Visual studio goes a step further than providing just the tools to measure these things, but also provides code analysis for Azure and scalability to make suggestions on what could be hindering scalability.
Final thoughts
When you start to explore some of these features in Visual Studio, if you’re like me you will start to ask yourself how you every lived without them. When working with dot NET development Visual Studio really does feel like a match made in heaven.