Top Ten Free .NET Tools I Use Every Day

Everyone seems to have a top ten of tools, add-ins and the like. Here's my addition with ten free tools I use every day.

1. Visual Studio 2008 Express Editions

It's hard to argue with this one. Visual Studio is the best integrated development environment available for .NET developers. Unfortunately it isn't the cheapest. The good news is that if you want to develop commercial software without shelling out for Visual Studio there are a couple of great alternatives that cost nothing. Firstly, there's the Express range of products from Microsoft, which are limited versions of Visual Studio but easily good enough. A non-Microsoft alternative that I used for a long time is SharpDevelop.

2. NUnit

The de facto standard for testing in many organisations. NUnit is a free-of-charge unit testing framework that can be incorporated into your code for automated testing. It includes everything you need to get started with automated testing including a graphical test runner and simple mocking engine.

3. Moq

There are a few good mocking frameworks available for no cost. My tool of choice is Moq. I love the simple but flexible interface that uses lambda expressions to declare expectations and to verify their execution.

4. CodeRush XPress

For those of us that don't want to or can't afford to buy expensive refactoring tools, DexExpress has provided CodeRush XPress. This add-in provides enhanced refactoring support and navigation for Visual Studio 2008. The great news is, it is completely free!

5. FxCop

If you are a developer who doesn't like other people reviewing your code then you will want to avoid FxCop. This tool analyses your source code and highlights areas that do not conform to best practices. It points out common mistakes that could cause problems within your application.

6. .NET Reflector

Reflector allows you to examine the contents of compiled .NET assemblies. It's an excellent tool for reviewing the Intermediate Language (IL) code that the .NET compilers produce. You can even convert the IL code back into C# or Visual Basic, which brings me on to the next tool.

7. Phoenix Protector

One of the problems with .NET compiled assemblies is their openness to tools such as .NET Reflector. If you want to protect your code from prying eyes, you should at least use an obfuscator to mangle the details so that they are difficult to read. Phoenix Protector is my favourite free tool for this purpose.

8. Infragistics NetAdvantage for WPF Express

Windows Presentation Foundation may become the preferred choice for developing rich Windows client applications over the next few years. If this happens, you will probably need a great data grid for WPF. Infragistics provides superb visual controls for ASP.NET, Windows Forms and WPF that you can purchase as one product or in groups according to the technology you use. They also provide their wonderful WPF data grid completely free of change.

9. EQATEC Profiler

Some developers spend an inordinate amount of time optimising code for performance. If you are not careful, this approach can extend your development cycle whilst providing little benefit. A better approach is to use a profiler tool to find out where the performance bottlenecks are and then optimise these target areas first.

10. PDF995

Most of us don't like doing it but documentation is essential for most software. To ensure that your documentation is readable to everyone, you can't go wrong distributing it in PDF format. PDF995 is set of tools, all freely downloadable, that allow you to create PDF documents from any application that supports printing.