As I was posting on the ASP.NET forums today, I wound up posting a link to a tool I use frequently when debugging web sites in Firefox. So, thought I’d throw together a more-or-less random list of tools I’ve found indispensable when working with ASP.NET. Most of you probably know about these, but there’s always a chance you might find something here you didn’t know about; I use all these tools on a daily basis while developing ASP.NET web sites.
All tools are free to download, except where otherwise noted.
Dev Tools I use with VS 2005, which you can download:
- Web Developer toolbar – this free Firefox add-in does a lot more than I can mention here, including letting you disable CSS from one source (such as external, or in-line styles); view all CSS; outline many different elements such as table cells, images, frames, links, etc.; clear the browser’s cache with one click; view Cookies, etc. Here is what the toolbar in Firefox looks like:
- Fiddler debugging proxy – this is the tool from Microsoft that acts as a proxy, letting you see everything that goes back and forth across the wire. Too many features to list here, but you can drill into each each request and response, viewing the raw headers, all the text in the request or response, images, forms data, XML, etc. You can "record" a request, alter it, then re-play it. You can view Privacy headers, spoof various browsers, simulate dial-up speeds…It is great for performance tuning. And it’s easily configurable, plus it has a rules-based system for further customization.
- Safari for Windows Beta, with Debug menu – although this is not exactly a "tool" per se, and getting a page to work in this browser isn’t a guarantee that your page will work in Safari on a Mac, still it was a great day for ASP.NET developers when Apple finally released a Windows version of their web browser. You should run Safari in Debug mode when writing web applications; you will be rewarded with another menu with various new options, including choosing the User-Agent Safari reports to the web server, and others you can see in the screen shot below. I have read about various methods for enabling the Debug menu, but the one that works for me is to create a new shortcut to Safari, and edit its Target to point at "C:Program FilesSafariSafari.exe" /enableDebugMenu". Obviously, this assumes your copy of Safari is installed in the default location; if you’ve installed it elsewhere, edit the path to match its actual location.
- ConvertCSharp2VB – this tool, which has long been available on the web, is now available as a stand-alone WinForms app, with full source code included! I have set it up in Visual Studio as an "External Tool" so I can load it up with one click on the Tools menu. It’s great for converting C# code examples you find on the web to VB.NET. Its creator, Kamal Patel, now has a tool to do the opposite conversion – ConvertVB2CSharp. Note that the full version is not free; however, for small amounts of code, there is an on-line Demo version.
Those are the main ones I use daily; in addition, I’m sure most of you are familiar with Lutz Roeder’s Reflector, a tool for decompiling .NET code to IL and browsing .NET source code.
UPDATE: I have since come across a few problems with the Source Control tools listed below. See the following post for more: Update on Tools post
For source control, I use a combination of CVSNT and PushOK Software’s Visual Studio CVS plug-in. CVSNT is free, but PushOK’s plug-in is not; it is very inexpensive, though. I paid less than $30 US for my copy of this Russian company’s VS plug-in; it integrates CVS into Visual Studio, and makes it as easy to use as Visual Source Safe. Everything you need to do can be done right in the VS GUI: check-in, check-out, etc. I sleep a little better at night knowing the source code for my clients’ web sites are protected this way, and I can back up to a previous version of the software if an update messes something up. It’s the only way to go if you are like me and develop both on your desktop PC at home and the office, and a laptop while traveling or at a client– it’s just too difficult to try to keep the various machines in sync any other way. Plus, the ability to fork a custom version off the main branch can be invaluable at times. How many times have you "finished" a project and deployed, only for the client to tell you, "you know, we really would like feature X to be added!" And feature X requires a total re-write of several pages…and then something goes totally wrong and you need to step backward to a working version? And you begin praying that you actually have a back-up of a working version…and that you can find it! With source control, you never need to worry…and you know exactly where that working version is! I’ve had people tell me, "Source control is only necessary for large shops, or projects where several developers are working on the same web site/WinForms app." Well, I do all the coding by myself on 95%+ of my projects, and I consider source code control an absolute necessity, for the reasons stated above, and many more…
Along the same lines, I use the DPack tools for quick, off-the-cuff backups of my entire web site projects; although there are many other useful features in the toolset, such as a project lines-of-code counter that can tell the difference between a line of actual code vs. a blank line or a line of comments, and browsers for Files, Classes, Projects, and the Framework, the feature I use most is the project back-up. Go figure!
I also use some homebrew tools, such as my ExceptionViewer; a simple program that reads all the different types of Exceptions in the framework and lists them in a window where I can copy one. I use it because I can never recall all the different types, and when I Throw an exception, I always try to pick the one that is most appropriate.
Well, that’s the tour of a few of my tools; perhaps I will post more when I think of them, or as I use them and am reminded of them that way… 😉