Below is a list of tools and components that I've found usefull in my work as a developer, primarily of websites with ASP.NET. I've omitted the obvious ones such as Visual Studio and SQL Server Management Studio. This list primary purpose is to act as a checklist for my self but I hope it might give some inspiration to others as well.
JetBrains ReSharper is a plugin for Visual Studio that continuously analyses code as we write it. Using Resharper I get immediate feedback wether the code compiles and suggestions to improve it. It also provides very powerfull ways to navigate between classes in a project (the CTRL+T shortcut is just impossible to live without) and between members in classes (ALT+\).
I've heard people complain that ReSharper is slow and buggy and while I can agree with that for earlier versions I think developers who haven't seriously given Resharper or it's competitor CodeRush a chance are borderline ignorant and are conducting professional misconduct.
Reflector is a free tool with which you can view the source code (or something very similar) of .NET assemblies. There is also a commercial version that let's you debug the code of third party assemblies.
When using third party software, including the .NET framework it self, .NET Reflector is invaluable as it is my greatest source of knowledge and documentation. I even use it sometimes to view code to projects that I have the source code for as Reflector makes it very comfortable to explore code by turning class and variable names into links.
FxCop is a free program from Microsoft that compares code in one or several assemblies to Microsoft's development guidelines. Great for checking your own code or when performing code reviews.
I've written a blog entry that contains a bit more information about how to use FxCop.
dotTrace is a profiling tool for .NET applications, including web based applications, which has proven to be great for locating performance bottlenecks in a couple of projects that I've been involved in. Unfourtunately it costs quite a lot of money but for projects where performance is important it can be well worth it's price.
LogView4Net is a tool for viewing logs created by Log4Net. It can display logs written to a file, to a SQL Server database, to the eventlog etc.
LINQPad is a tool for analyzing LINQ queries. It supports a bunch of data sources such as Objects, SQL Server, Entity Framework and XML. While there is a commercial version with auto completion the basic version is free.
My test runner of choice. While it isn't graphical it's very fast and lightweight. When it comes to testing (and development in general) feedback is extremely important, and fast feedback means fast development. TestDriven.Net gives me fast feedback. With that said there are other good test runners out there such as Gallio, and ReSharper's test running feature.
A simple and lightweigt Firefox plugin for measuring areas on web pages.
Development frameworks and components
There are many tools for testing web applications through the user interface out there. Luckily two of the best ones are free, Watin and Selenium. I've chosen to primarily use Selenium and haven't been disappointed so far. I have also put together a post on how to use Selenium with xUnit.Net.
In my opinion there are three XUnit frameworks for the .NET framework that are worth using, the original, old and reliable NUnit, the more feature rich MbUnit and the modern xUnit.net. I've chosen to focus on xUnit.net as I like it's modern syntax which is well adapted for test driven development.
While I've also used Rhino Mocks, lately Moq with it's very fluent and nice syntax has been my isolation framework, or mocking framework, of choice.
Inversion of Control is a subject dear to me and while it's not necessary to use and IoC container such as StructureMap it can be a great help when creating flexible and testable applications. While there are many competent IoC containers available for the .NET frameword in my opinion the two that stand out when it comes to both features and reliability is StructureMap and Ninject. So far I've mainly been using StructureMap.
My Subversion client of choice.
While I usually use TortoiseSVN when using Subversion I also have Ankh installed for Visual Studio integration as I otherwise keep forgetting to add files that I've added to a project through Visual Studio.
My favorite Git client. Because I haven't bothered to look for any other :-)
Blogging and website maintenance
I've tried Google Analytics and Woopra for this site but finally settled for Clicky due to it's lightweight and good looking interface (which I think Woopra lacks) along with it's real time data (which Google Analytics lack). More on why I prefer Clicky over Google Analytics.
I use Windows Live Writer to publish blog posts on this site, using a custom module for Windows Live Writer integration with EPiServer Community that I've created. And I'm loving it.
PreCode is a plugin for inserting snippets of code into post written with Windows Live Writer. While PreCode helps with indenting code correctly it doesn't do any syntax highlighting. It does however produce markup that tells SyntaxHighlighter (see below) what type of code it is.
- A few new tools in my .NET development toolbox
- Learning Scala part two – Installation and tools
- Free yourself from the mouse using Mouse Nag
- Web testing with Selenium and xUnit.net
- Manage multiple web.config files using Phantom
- Øredev impressions and insights
- Dynamic sorting with T-SQL
- Learning Scala