I started developing web applications in the late 1990s. As a consequence, I have a fond attachment to building HTML and related code via a nice text editor. However, I didn't include such an editor when asked to write a post outlining my top three tools for ASP.NET development. (That's right, I only got to choose three, and it was just as hard as I thought.) As I made my list and changed it numerous times, I was amazed at the number of useful tools I use on a regular basis. Anyway, that is enough whining, so let's quickly cover the guidelines (as I see them) before discussing my choices.
Useful vs. necessary
After much consideration, I arrived at the conclusion that a key deciding factor with compiling the list was useful vs. necessary. That is, there are so many tools that are useful and help me build applications either faster or more effectively, but I can still build such sites without them (although I will not). I arrived at my final list by thinking of a new developer and what three tools I could give her to be productive after some ramp up time. Without further ado, here are my top three tools for ASP.NET developers, which I break into three main categories: Integrated Development Environment (IDE), version control, and browser tools.
The IDE is a core piece of software development these days and is the one tool developers use on a daily basis. The default IDE for Microsoft developers (which includes ASP.NET) is Visual Studio; it includes almost everything needed to develop, test, and debug web applications, so you can focus and remain in the IDE and write code instead of dealing with multiple applications.
Visual Studio 2012 is the current release, and Visual Studio 2013 is on the horizon. Currently, I use Visual Studio 2012 Ultimate. Figure A shows the basic Visual Studio 2012 interface with a new ASP.NET application opened.
New web application opened in Visual Studio 2012. (See an enlarged view of the image.)
Microsoft continues to enhance its popular IDE with powerful support for extensions (via NuGet) as well as regular patches and add-ons. There are some cheaper alternatives to the full-blown Visual Studio IDE with its Express offerings and WebMatrix readily available.
I learned long ago the perils of omitting version control within my development projects and my written documents -- I wasted too much time recreating previous versions when a simple rollback would have sufficed. Needless to say, I religiously utilize version control on all of my projects regardless of their size, and I have fallen hard for the freely available and wildly popular Git. It offers: an easy-to-use command line interface, support across multiple platforms, great website/tools via GitHub, and tight integration with Visual Studio.
While I prefer Git, I am open minded and simply ask that you utilize version control with your favorite tool.
Browser development tools
Firefox, Internet Explorer, and other browsers offer their own tools. I suggest you choose one and get to know it inside and out.
On the cusp of making the cut for this list is the Bootstrap framework for building web applications, which I have fully adopted and use on most projects. Considering a framework led me down the philosophical path of whether it is a tool (I say it is a tool), but I found its inclusion in the upcoming Visual Studio 2013 release to make it easy to leave off of my list.
Other tools that had me going back and forth include: Fiddler for debugging HTTP requests; Internet Explorer developer tools; Firefox's developer tools; LINQPad; I love .NET Reflector for reverse engineering, but sadly it is no longer free so I go with dotPeek these days; and when it's time to test, the BrowserStack service is awesome.
Taking a stand
I think an IDE, version control system, and browser development tools are critical to building web applications. However, the beauty of a creative endeavor like application development is there are many ways to tackle a problem, and there are a variety of tools used to solve it. Let me know what tools would make your list.
Tony Patton has worn many hats over his 15+ years in the IT industry while witnessing many technologies come and go. He currently focuses on .NET and Web Development while trying to grasp the many facets of supporting such technologies in a production environment on a daily basis.