NETDecompilier's inline editing makes it stand out from the rest, which makes source code recovery less of a nightmare. It is quick and easy to use. In the event you lost your source code (or something worse), you can feel safe knowing that it could be recovered nearly 100% with a product like this. It pays for itself, in time saved, after the first recovery
The typical problem with decompilation is the absence of full source information in the executable file. For instance, .NET assembly does not contains names of local variables. Program can automatically assign local names in accordance with their types (what Dis# is really do), but it still too differentiates with the original source.
Dis# makes next logical step in this direction. You can edit the names and keep the changes in a project file.
Comments