The Productive (.NET) Programmer
Another Ultimate Tools List for mainly (but not restricted to) .NET Developers.
A collection of programs, utilities and frameworks I use, have been using or are installed on my Dev machine.
Visual Studio
Being primarily a .NET Developer this is my main programming IDE. The Ultimate edition provides testing, code analysis and code coverage tools on top of the VS IDE.
ReSharper
ReSharper (aka R#) is a refactoring and productivity tool for Visual Studio. If you haven't tried it yet, I encourage you to download it and give it a go. The learning curve is a bit steep at the beginning but if you stick with it for at least a month I guarantee you will be converted. I have also listed below some great R# plug-ins. Check out Agent Smith. Among other goodies it will give you code comment spell checking with R#, nice! If you use StyleCop, don't forget to install the brilliant StyleCop for ReSharper plug-in for fixing StyleCop violations automatically. Links to other plug-ins can be found on the JetBrains web site. R# is one of these must-have tools and I simply can't code without it.
VS Add-In
There are literally hundreds of VS extensions but I think only a few are really worth keeping. One of the best has to be TestDriven.NET which greatly helps run your unit tests without much effort. Other extensions which I can't do without are VSCommands 2010 and... the Hide Main Menu extension.
Unit Testing
As mentioned previously TestDriven.Net is an essential VS add-in. This should really be one of the first you install on top of VS as it will make it so much easier for you to run your tests.
If your project is not using MSTest, check out Gallio, an automation platform that supports a multitude of unit testing frameworks.
Code Analysis
Any self-respecting .NET Developer should have Reflector already installed on their machine. If not, why not? Reflector is a disassembler which lets you navigate through .NET assemblies. It's a great way to learn about how a piece of code works and can be invaluable when debugging too. Since Reflector has gone commercial other free alternatives have appeared but Reflector still remains the best IMO.
NDepend simplifies managing complex .NET code base and can help you analyse your source code; it can be used for reviews or for highlighting areas that might need to be refactored. It's a rather complex tool but offers some really unique features to improve your code base.
If you are starting a new C# project and you want to enforce style and consistency across your code base then make sure you (and your team) install StyleCop.
LINQ
Simply brilliant for learning and testing LINQ queries.
Regular Expression
Regular expressions made easy with Expresso. I've tried many other regex tools but this is the only one I want.
Text Editor
Don't use notepad use Notepad++ instead. It's a nice replacement for notepad and comes with loads of useful plug-ins. It also has syntax highlighting for a multitude of languages.
XML / XPath
For XPath queries use SketchPath. It works well and it's another great learning tool.
Code Gen
If you are into T4 templating, go now to Oleg Sych great blog on the subject and his T4 Toolbox. Also make sure that you download either DevArt, Clarius or Tangible T4 Editor to get intellisense when working with T4 templates.
Profiling and Monitoring
Some of these tools are really great and free!
Build and Deployment
All good but if you use TFS then you have to have the TFS Power Tools for checking files in or out of source control within Windows Explorer. For personal projects, I am now using Git.
Miscellaneous Dev Tools
An all time favourite, the Sysinternals suite includes Autoruns, Process Monitor, ProcessExplorer and a lot more...
Frameworks and Libraries
These are not tools or utilities but they are definitely worth listing here as they will make you more productive if you develop on the .NET platform... and I wanted to store the links somewhere on the site.
WPF/Silverlight/WP7 Controls and Toolkits
WCF and Messaging
All related to well... WCF and messaging.
Accelerators
Neal Ford in his book The Productive Programmer talks about the mechanics of productivity and covers accelerators as tools, utilities, shortcuts and anything else that help speed up how you interact with your computer. When I setup my system the first accelerator I install is Launchy. There are many other launchers around (e.g. Enso, Executor) and I've been using FARR for a few years, but Launchy still suits me best. It's fast, easy to master and you'll never have to click on "Start > All Programs" ever again!
I also strongly recommend you install AutoHotkey. Thanks to this 'free keyboard macro program' you can regain total control over your keyboard and shortcuts, and do a lot more.
File Merge and Comparison
I use WinMerge as a replacement for the standard VS merge tool but use ExamDiff for any other file comparison and KDiff3 when using Git Extensions. Not sure why but I do :)
PowerShell
The best PowerShell IDE has to be PowerShell Plus but for most of your scripting tasks all you need is PowerGUI. It's got a lot of features including script debugging, intellisense and most of all it's free. For some great integration between PowerShell and Console, check out SlightlyPosher from my good friends over at #Fellows.
Ruby
It might seem strange to find Ruby in a list targeted (mainly) at .NET Developers but I do believe that it is important for programmers to explore new ideas and paradigm outside their programming language of choice. Of course I could have chosen any other languages (F# is another one I'd like to learn), but I think Ruby has a lot to offer to C# Developers. In my quest to be more than just a C# programmer but a Polyglot Programmer, I will be using RubyMine as a learning tool for Ruby.
Database
I used SQL Scripter in the past to generate insert statements and liked it a lot but since it is no longer free I have switched over to SSMS Tools Pack instead.
Networking
Wireshark is an open source and powerful tool for monitoring and capturing network traffic.
Windows Utilities
A mixed bag of Windows utilities but all very useful to have installed on your machine.
File Management
If you want to copy files quickly, try FastCopy. You can also use TeraCopy as an alternative but I prefer FastCopy's minimalist interface and the context menu. For a richer UI, use RichCopy.
Desktop Management
The combination of Launchy and RocketDock is all I need for fast access to my applications while working... and a bunch of other desktop management apps.
Keyboard Tweaking
Download Key Jedi and see how long you can live without reaching for the mouse. This is probably the best way to learn shortcuts and get computer rage! The other software listed below are key mappers but my preference these days would be to use AutoHotkey whenever possible.
Virtualization, Emulators and Remote Desktop
Go for VMware Workstation if you want more features than just running virtual machines.
Design and Creative
I've used SnagIt, a screen capture application, from version 3 and it's got better and better. Also check out Camtasia, another software from Techsmith, for recording screencasts.
Browsers and Extensions
So many features, so many add-ons. Google Chrome IS the best browser around... but I do like Firefox as well :)
Personal
While it is often the case that Development teams will setup a project Wiki, I think that Developers should also maintain their own personal Wiki to store and manage information. In the past I have used TiddlyWiki and WikiPad to do that but I am now totally fanatical about OneNote. This is a really amazing app which now serves as my sole repository for every piece of personal or work related data I want to keep.
Other Tools Lists and Sites
On The Back Burner
Interesting projects, tools and frameworks to try out someday... when the occasion presents itself.
Script#
SQLite2009 Pro Enterprise Manager