
Here is a list of
minor features I would like to have in VisualStudio to make me and my team slightly
more productive. It is certainly too late to expect having them implemented in
VisualStudio2008 but who knows, it might be still worth mentioning them. Most
of them shouldn’t take more than half a day to be implemented.
- When an exception is
raised while debugging, I would like a button in the ‘exception was unhandled’
dialog that discard the exception type (i.e in this case I don’t want being
advised anymore of any ParseException raised). Even better, I would like to discard this particular throw. The reason is that while debugging, your environment and inputs might create some well-known error conditions that you don't want to be advised again and again. For example when starting NDepend on a disconnected machine, we got an exception because the program cannot check on the web if a new version is available.
- Alternatively, when
you want to discard a custom exception class, the dialog should at least display
the list of custom exception classes in your program, or even have some
intellisense support. Now, you to have to type or copy/paste the whole
exception class name manually, very boring!
- I want a ‘smart button’
to attach to process. The underlying plumbing should be smart enough to detect
which process I recently start from VisualStudio, and it could also learn from
the processes I previously attached to from the current opened solution. It could also detects which processes contains an assembly generated by the current configuration of my solution.
- When starting a
compilation, I want to be advised immediately if the assembly file I’m about to
override is not currently used by another program to avoid waiting a few
seconds for nothing. I would also like to know immediately which process is
currently using which assembly I’m about to override (a la ProcessExplorer) and VisualStudio could propose to close them.
- Since VisualStudio
4.2, I’m forced to edit my numerous conditional symbols with a ridiculous 275px
width textBox. Is it that difficult to code a proper conditional symbols
editor? It was already the source of a geek joke we had with some colleagues 5 years ago!

- I would like that the textBox
‘Start external program’ accepts some paths relative from the currently opened
VisualStudio solution because when you work as a team, you have several machines
and installation root paths can be different. Also, the textbox could be smart enough
to become a combo box that proposes the list of executable assemblies generated
by my solution + the ones recently referenced.
- I would like that the textBox
‘Command line arguments’ remember what I typed previously, and propose a list of previous lists of arguments in a combobox for example. I really don’t want to multiply the
number of configurations of my solutions just to avoid retyping some convenient ‘Command line arguments’ for smoke testing.
- Sometime, you
accidently trigger the help update and your VisualStudio 2005 used to freeze
for minutes! Things got a bit better with VisualStudio2008 beta2 and the minutes were
transformed in seconds. It is still way longer than searching on google in a
lightweight browser.
- I want some facilities
to browse the list of code elements (methods/fields) that I’m currently working
with. VisualStudio could infer automatically that I’m currently working with a
method if I recently modified it or browse for it. You are often editing
multiple methods at the same time and it would be awesome to visualize them intuitively to jump from one to another. Obviously, this facility should be cross-files.
I found cross-files bookmarks awkward to do this because I don’t want to spend
time managing them.
- And in my dream, I would like that Reflector decompilation facilities be available natively from VisualStudio. I doubt MS will add this feature as long as it doesn't propose a native obfuscator. Believe me or not, but a lot of .NET developers don't even know about Reflector and decompiling facilities from IL, with metadata. Having Reflector decompilation facilities directly available in VS could lead to high pressure on MS. That's my understanding of the situation and I might be wrong. However, the fact is that today, only educated developers have access to the awesome features of Reflector.
About Patrick Smacchia
Patrick Smacchia is a Visual C# MVP involved in software development for over 15 years. After graduating in mathematics and computer science, he has worked on software in a variety of fields including stock exchange, airline ticket reservation system as well as a satellite base station at Alcatel. He's currently a software consultant and trainer on .NET technologies as well as the lead developer of the tool
NDepend which provides numerous metrics and caveats on any compiled .NET application. He is the author of Practical .NET2 and C#2, a .NET book conceived from real world experience with 647 compilable code listings.