I've had the unfortunate pleasure of changing out two of my machines in the last week.  First, my trusty Dell Inspiron is being phased out in favor of the lighter, sturdier, sexier VistaMac.  Second, my ancient workstation at my day job is finally being replaced by an HP xw6600 workstation with a quad core Xeon (NICE).  While new toys are great, setting them up and getting them to feel "right" is a challenge.  I've found that to perform at my peak, I need some essential tools, utilities, and other misc. items.  Some of these are not free, but I've found their cost to be way, way more than justified by how much effort they save me.

Development Tools

  1. Visual Studio 2008 – This is a no-brainer.  With this single IDE, I can work on web projects, desktop apps, backend services, client-side JavaScript, XML, and just about everything else that I run into during a "normal" day.  With a few additional addons, you can even work with some of the lesser languages (I'm looking at YOU, PHP! :P).
  2. NUnit – Developing without unit testing is not developing, it's programming.  You don't want to be "just" a programmer.  Unit testing may start out feeling like a hassle, but you will soon realize how much time you're saving by creating solid code the first time.  If you want to benefit even more, try doing actual test driven development.  I've found that I create cleaner, more intuitive, and more concise APIs by driving everything top-down from my tests. 

    One alternative to NUnit is MsTest, but I strongly recommend against it.  It's slower, clunkier, and all-around inferior to NUnit (your mileage my vary).

  3. TestDriven.NET – There are lots of ways to run your NUnit tests, but I've found that TestDriven.NET is the way that works best for me.  I can right-click and run tests on anything from a solution, to a project, to a namespace, to a class, to an individual test case.  It can also run ad-hoc tests and methods, which makes it very handy for testing the output of some obscure base-class library function that isn't documented very well.
  4. Resharper – When they say "Develop with pleasure", they mean it.  The latest version works great with Visual Studio 2008.  It suggests useful ways to improve code as I'm writing, and it makes it very easy to refactor my designs as I'm practicing test-driven development.  If you have never tried Resharper before, you owe it to yourself to give it a go.  If you use it for a week and aren't addicted, you are a stronger man than I am.
  5. TortoiseSVN – Subversion is a very powerful source control system, but source control is only as good as its tools.  Fortunately, Subversion has TortoiseSVN, an excellent shell-integrated tool for managing your local checkouts. 
  6. Notepad++ – A lot of times I need to open a log file or something else that Visual Studio isn't the best fit for.  For these times, I turn to Notepad++. 
  7. SQL Server 2005 Developer – Very few applications these days don't have to deal with a database.  SQL Server 2005 Developer has all the capabilities of the enterprise version of SQL Server, but it is designed for workstation use.  You may be tempted to use SQL Server Express with the Express Manager, but if you ever need to debug a database larger than 4 GB, it will leave you out of luck.

Other Essentials

  1. Launchy – Even with the search box in Windows Vista, I still much prefer the elegance of Launchy.  No matter what I'm doing, I can just hit Alt+Space, type what I want to run or open, and BAM, I'm set.
  2. Foxit Reader – After a format/reinstall, I usually make it without a PDF reader for all of about 15 minutes.  Adobe Acrobat was terrible at its best, and now… well, I don't use it.  Instead, I use the freely available Foxit Reader.  It launches very quickly, it's lightweight, and I've never found anything that Acrobat would do that Foxit won't.
  3. Firefox – I'm really not an Internet Explorer hater, but I hate IE 7. I don't know why opening a new tab takes so much longer than Firefox, but it does.  IE also doesn't have the diversity of plug-ins that Firefox does.  While Firefox 2 was definitely a memory hog and required restarts every few hours if you were hammering it, Firefox 3 is much more solid and much lighter in terms of memory footprint. 
  4. Virtual CloneDrive – ISOs used to be rare outside of the shady world of piracy, but they are everywhere today.  Odds are you will want to mount an ISO at some point (if you have an MSDN subscription, pulling an ISO from subscriber downloads is usually faster than digging through the 50,000 discs you have accumulated).  Virtual CloneDrive is a my favorite virtual CD drive.  The only downside is that it won't work on x64 versions of Windows.
  5. WinRAR – A lot of people swear by WinZip/7-Zip/PowerArchiver/whatever, but for me, I really like WinRAR.  It can open everything I throw at it, and it seems to perform faster than some of its competitors.

Anyone have any essentials that they can't imagine developing without?