Filling Your Toolbox (a.k.a. Essential Tools List)
By Cory Smith
Following are a few tools categorized by development area that I would consider a necessity to any developer who is burried knee deep in hardcore .NET development. This is not meant to be a complete list of all tools available, there are some really good lists that already exist that are attempting to do this task. Where appropriate, I will try to show some alternatives to tools as to not appear to be too biased ;-)
Visual Basic .NET Resource Kit
Listed as being about a $900 dollar value, the FREE Visual Basic .NET Resource Kit is an essential resource for any Visual Basic .NET developer. In addition, many of the tools, components and other resources are useful for any .NET developer.
Reflector for .NET
Reflector is a class browser, decompiler and XML documentation browser for .NET components (assemblies). It features assembly and namespace views, type and member search, reference search, IL disassembler, C# decompiler, VB decompiler, C# XML documentation viewer, MSDN help viewer, dependency trees, supertype/subtype hierarchies and resource viewers. Function prototypes are displayed in C# and VB syntax.
FxCop is a code analysis tool that checks .NET managed code assemblies for conformance to the Microsoft .NET Framework Design Guidelines. It uses reflection, MSIL parsing, and callgraph analysis to inspect assemblies for more than 200 defects in the following areas: naming conventions, library design, localization, security, and performance. FxCop includes both GUI and command line versions of the tool, as well as an SDK to create your own rules.
Clarity Consulting C# To VB.NET Translator VS.NET Plug-In
This is the same C# to VB.NET converter included with the VB.NET Resource Kit. This is the C# to VB.NET converter that I personally use.
ASP Alliance C# To VB.NET Translator
A web based code conversion tool. Arguably a better conversion engine than the KamalPatel.Net version; however, it's good to have different ones available depending on the source you are trying to convert.
KamalPatel.Net's Convert C# to VB.NET
A web based code conversion tool. There is also a link to download an offline version and even includes full source.
CodeSmith is a freeware template-based code generator that can generate code for any ASCII-based language. CodeSmith templates use a syntax nearly identical to ASP.NET syntax so that creating templates should feel immediately familiar to ASP.NET developers.
Strongly Typed Collection Generator
Visual Studio .NET 2003 Add-In for generating stronly typed collections both in C# and VB.NET. Once installed a new menu item will appear (STC Generator). Select it and then choose the project and class. The generator will then generate the source code for you automatically in C# or VB.NET depending on the project language. UPDATE: bug fix 1. The strongly typed enumerator now is correctly rendered in VB.NET 2. Inner classes are shown on the wizard [editors note] Very useful, at least until the next release of VS.NET ;-)
CLR Profiler (v2.0)
The CLR Profiler includes a number of very useful views of the allocation profile, including a histogram of allocated types, allocation and call graphs, a time line showing GCs of various generations and the resulting state of the managed heap after those collections, and a call tree showing per-method allocations and assembly loads.
[video] Profiling Managed Code with the CLR Profiler
DevPartner Profiler Community Edition
Compuware DevPartner Profiler Community Edition accelerates software development and improves the quality of your code by pinpointing performance bottlenecks in Visual Studio .NET applications. Whether you're creating new applications using the latest .NET technologies, or are working both with .NET and legacy components such as COM, COM+ or ASP, DevPartner Profiler is the profiler of choice for detailed and accurate timing results.
Setup and Deployment
Visual Studio .NET Framework Bootstrapper Plug-In
Setup projects in Visual Studio .NET 2003 can be used to install the .NET Framework with your application, but only if you have installed the optional Visual Studio .NET Framework Bootstrapper Plug-in on your development computer. The Visual Studio .NET Framework Bootstrapper Plug-in modifies the behavior of the Setup project's Bootstrapper property to include the .NET Framework bootstrapper as well as the Windows Installer bootstrapper. The .NET Framework redistributable is then packaged with your application; when the user runs the bootstrapper setup.exe, it checks for the correct version of the .NET Framework at install time and if necessary, installs it before installing your application.
Network 'Sniffer' Tools
NetworkActiv Sniffer enables you to capture and analyze IP packets, search for keywords in the content and set various filters to limit capture to the packets you're interested in. Filtering options include by IP, by port, string, protocol and more. In addition, you can also use the File Sniffer mode, which allows you to capture and store complete HTTP files (web-pages, pictures, downloads, etc.) that go through your computer via your network. The files can be stored in a directory of your choice for later review or processing. The File Sniffer mode also supports several filtering options. A great and easy to use tool for TCP/IP network administrators, security professionals, and just about any advanced computer user with an internet connection. [editors note] I prefer this tool as it doesn't require any type of configuration to get up and running... the driver is built into the application and dynamically loads/unloads.
Ethereal is a free network protocol analyzer for Unix and Windows. It allows you to examine data from a live network or from a capture file on disk. You can interactively browse the capture data, viewing summary and detail information for each packet. Ethereal has several powerful features, including a rich display filter language and the ability to view the reconstructed stream of a TCP session.
Fiddler is a HTTP Debugging Proxy which logs all HTTP traffic between your computer and the Internet. Fiddler allows you to inspect all HTTP traffic, set breakpoints and “fiddle“ with incoming or outgoing data. Fiddler is designed to be much simpler than using NetMon or Achilles and includes a simple but powerful JScript.NET event-based scripting subsystem. [editors note] Not technically a 'sniffer' tool in the traditional sense... however, for debugging traffic, it works pretty nicely.
ControlInspector hooks on to all events on a given control, user-control or form and shows when they are fired, along with any eventargs. It even handles custom events and custom event args using dynamically generated assemblies. This is similar to Spy++ utility shipped with prior versions of Visual Studio).
Windows Forms Property Spy
A utility that can be used to spy the properties of any Windows forms control in the system.
Regulator (or here)
A visual regular expression tool with advanced features for power regexer's.
Other sites with tools list...
Again, this list is not meant to be a complete list, so following is a list of locations that have a more comprehensive tools list.
Tool Listing hosted on MSDN “From the C# Team“
We've scoured the Web for other implementations of the CLI, cool object browsers, IDE tricks, add-ins, obfuscators, and other useful tools and utilities that will help you get your job done faster.
A very comprehensive developers tool listing. If a tool exists, it's probably on this list.
The .NET Toolbox
A comprehensive listing of free .NET tools and components, complete with reviews, user comments, and ratings.
.NET Development - Extra Tools
Chris Burrows states “Over the weekend somebody posted a quest to the Win Off Topic mailing list about what extra tools people use.. I have taken the responses, grabbed the websites for all of them and listed them.”
Scott Hanselman's Ultimate Developer and Power Users Tools List
“Everyone collects utilities, and most folks have a list of a few that they feel are indispensable. Here's mine. Each has a distinct purpose, and I probably touch each at least a few times a week. For me, util means utilitarian and it means don't clutter my tray. If it saves me time, and seamlessly integrates with my life, it's the bomb. Here are most of the contents of my C:/UTILS folder. These are all well loved and used. I wouldn't recommend them if I didn't use them constantly.” - Scott Hanselman
CSharpFriends Companion Tools For .NET Development List
Yet another list to get some ideas from.