Top 10 developer tools for .NET coding

html_web_development1. Bytescout

This site provides PDF components and libraries to work with barcodes, to generate barcodes, QR Code, Code 39 and other codes, spreadsheets, images, HTML. It can be used to easily to extract text from pdf, convert pdf to excel or csv or spreadsheet.

If you need to generate barcodes or need to read a barcode then you may use these components to add barcodes to your documents as well as to read barcodes from web camera, from images or PDF. There are also free tools like PDF Multitool, Bytescout BarCode Reader, BarCode Generator and others like free Bitmap Visualizer plugin for Visual Studio.

Easy to use and comfortable solutions for customers, presented by Bytescout company can result in implementation of your ideas.

2. ReSharper (R#)

ReSharper is undoubtedly number one of must-have developer tools for .net coding ever. Some people even say that they literally cannot work without ReSharper and I am among those people. Do you know why? Because it helps me to focus on development instead of wasting time on routine. I like to follow XP approaches, such as TDD, evolutionary refactoring, so I start with the test, and then write an empty public method trying to make test “green” as soon as possible (first write code that works, then make it clean).
When I see that my method becomes messy, I just press cntrl+shift+R and select Extract Method from ReSharper menu. Voilà, I have a private method. Too many private methods and class responsibilities? cntrl+shift+R again and Extract Class. Want to change namespace? Alt+enter fixes it. I feel that it just has magic hotkeys which read my thoughts helping me to move on full speed instead of repeating boring operation repeatedly. It also has its own unit test runner which is much better than a built one.
I would say that Resharper just saves a lot of your time every day helping to be as productive as possible and it is worth its money.
Unfortunately, there is one big issue. Sometimes Visual Studio performance becomes poor with R#, especially with Visual Studio 2015 since Microsoft introduced Roslyn. Roslyn analyzers cannot be turned off, so sometimes Roslyn and ReSharper fight each other. ReSharper team works on moving it out of Visual Studio process and new cross-platform IDE named Rider, which is not production–ready yet though.
If you like ReSharper you would probably like R# Ultimate package which includes the tools bellow

2. dotTrace

dotTrace is a performance profiler. Of course, you can use free ETW or PerfVIew but these tools are quite advanced. With dotTrace you can simply write a unit test click Profile button. ReSharper kindly runs a test and opens dotTrace log for you. It also integrates with Visual Studio so you can debug the application and analyze the performance in real-time.

3. dotMemory

dotMemory is a memory profiling tool. Together with dotTrace, it covers 90% of performance and memory optimization tasks. All you need to do is start profiling, create snapshots and compare them to find memory leaks. In addition, dotMemory has built-in inspections which help optimizing your code.

4. xUnit

xUnit is a free, open source, community-focused unit testing tool for the .NET Framework. Written by the original inventor of NUnit 2. I used NUnit for about 4 years and last year I decided to switch to xUnit. The reason was better .NET Core support. xUnit and NUnit are not very different. xUnit is more like better version of NUnit which helps to write and test more effectively and do less bugs in testing (yes, you could have bugs in your test too!)

5. dotCover

If you understand advantages of unit testing which means that you do not want to spend hours debugging application trying to find and fix bugs you really want to measure and improve your test coverage. dotCover integrates with ReSharper and instead of simply running your test you can select Cover Tests option. It will take some additional time, so better option is using dotCover TeamCity integration and cover test during CI builds.

5. dotPeek

dotPeek is a free .NET decompiler and assembly browser. It is indispensable in debugging the third-party proprietary code. Null reference exception in dll-file could be painful. Of course, it is not our fault. Vendor should have test their library better… Theoretically… in real life possibility to decompile code and find out what is happening could save hours or days. You would love dotPeek more if you want to use Reflection.Emit namespace.

7. SpecFlow

If you heard of TDD you probably heard of BDD as well. If not checkout this post: BDD is the same thing but for a broader audience: testers, analysts, project and program managers covering multiple interrelated domains. Therefore, BDD is not only about how to test your code, but also about how to manage requirements. Inspired by Gojko Adzic’s “Specification by Example”, SpecFlow is a tool, which helps to follow BDD principles with your whole team. It makes possible to describe the behavior of your system using human-readable syntax (given-when-then format) and provides a way to bind your test specifications to your application code to automate testing of your system.
SpecFlow itself is free. You can be interested in SpecFlow author’s requirement management software named “Speclog” as well.

8. Speclog

With SpecLog you can build “live specifications” which means that you can have set of requirements linked with each other complete with test cases, which can be automated and run on CI server. It is quite a powerful approach, requiring deep understanding of BDD principles and management support though.

9. TypescriptSyntaxPaste

TypeScript is a typed superset of JavaScript that compiles to plain JavaScript, which means that you can use familiar C# stuff like classes, interfaces, generics in JavaScript but with slightly different syntax. Defining DTO on JavaScript side can be boring. What is the point doing it if you have almost the same definition on C# side? With TypescriptSyntaxPaste extension, you can copy C# code and paste TypeScript. Plugin uses full power of Roslyn API.

10. BenchmarkDotNet

Last, but not the least. BenchmarkDotNet is an open-source .NET benchmarking tool. When you really want to compare performance, you have to do benchmarks. However, benchmarking is tricky; you have to consider many things: build configuration settings, warming-up, and measurement impact on performance. With BenchmarkDotNet all you need to do is to add special attribute to a class and write couple lines of code. The library will handle all other stuff and prepare the report for you.

1 thought on “Top 10 developer tools for .NET coding”

Leave a Comment