I'm constantly amazed at the quality of developer tools available for .NET. My three favourite tools are:
Subversion revision control system is a close fourth but we don't use that here ... yet.
Visual Studio is simply better than any development environment I've ever used. Its editor is very good. The integration with third-party add-ins is excellent. Its IntelliSenseTM is a great time saver, and the environment is highly configurable. There are other third-party development environments available for doing .NET development but most shops I know use Visual Studio. I can understand why.
TestDriven.NET is a suite of tools that allow developers to write, execute and maintain unit tests. For those who are not familiar with unit tests, a unit test is code written to automatically test code. The idea is to develop unit tests in parallel with your production code and then execute these tests as you develop and change your code over time. When you change code, simply execute the unit tests again and if the tests pass, you can be pretty sure that you haven't introduced any new issues. When used in conjunction with a code coverage utility such as NCover , the probability of writing really reliable code and keeping it that way increases dramatically. On our soon-to-be released Essentials Manager project, we've seen the power of unit tests first-hand. We encountered very few problems with code we wrote that had accompanying unit tests, but the outcome was different for code we wrote without unit tests.
CruiseControl.NET is one of those tools that you don't know you need until you begin using it. Many development shops have automatic daily builds which is good, but CruiseControl.NET takes that idea to the next level. CruiseControl.NET sits quietly in the background and monitors your source code repository and whenever anyone checks anything into it, it kicks off your automatic build and reports any errors it finds. Everyone on your development team is notified when an error occurs and the name of the offending developer is displayed prominently. The peer-pressure for that developer to quickly remedy the problem is substantial. CruiseControl.NET takes only about an hour to setup and once running, you're likely never to suffer a broken build again.