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.
Dis# project file
Dis# have it's own metadata structure, which expands PE metadata structure with all necessary for decompilation information, such as local variable names. You can save Dis# metadata in the project file (extension .dis) and keep all changes.
Decompilation Speed
Custom metadata provides outstanding decompilation speed, which 25-700 times faster then have other .NET decompilers. Dis# decompiles more then 2000 methods per second.
Multiple Languages decompilation
Support for C#, Visual Basic.NET, Delphi.NET and Chrome.
Well formed code
Dis# generates code, which is look like the human edited. Dis# .net decompiler have many options to adjust code view for your preferences.
Optimization
Dis# optimize code.
.NET 2.0 support
Dis# support .NET 2.0 assembly format, generics etc.
Raw Code
In some cases you have to view raw code (before high level decompilation algorithms processing).