Improving the Visual Studio 2010 UI Menu System – Part 2

[ In this series – Part 1, Part 2, Part 3, Part 4 ]

This part is essentially all about ‘Why?’. We’re going to spend a bit more time on the menus we saw in Part 1 and also take a brief look at some of the Toolbars that are displayed with an out the box install.

Why? – Project context menu

As we saw in Part 1, the out the box count for this menu is 28. This rises to 49 once you add Source Control and some productivity add ins.


Image: Visual Studio 2010 C# Class Library Project context menu.

  • Why is Run Code Analysis grouped with Build and separated from Calculate Code Metrics? These are both about quality. They should be together.
  • Why are Service References not incorporated into the shiny new Add Reference screen, allowing us to get rid of the Add Service Reference menu?
  • Why is there no contextual filtering? Would I really want to add a Windows Form to a class library? So often that it deserves prime real estate?
  • Why is Unload Project not next to Set as StartUp Project?
  • Why is Add Solution to Source Control using an icon that looks like it will add a folder: Untitled2 ?
  • Why is Open Folder in Windows Explorer using this totally unrelated icon: Untitled ?
  • Why are Add Ins and third party software allowed to simply add menu items anywhere they like?
  • Why do items that are used once, twice, never, all available with items which we use day in and day out?

Once the project has been added to Source Control, we have the following menus, which are the same as the those for a file. This is a critical part of the menu as these menus are probably the most used by any developer. They are also the single most frustrating set of menus available. Try as I may, I always battle to find the right menu item I need in this list. By ‘battle’ I mean that it stakes me several seconds to resolve. This is too long. I’ve even done many a paired check in where we have both stared for a while and asked’ Where is the Check In menu?’

26-09-2010 14-47-50

Image: Source Control menus

  • Why are the Check In and Check Out icons so similar?
  • Why is it Check Out for Edit… and not just Check Out?
  • Why does View Pending Changes not have in its name like the others do?
  • Why do the others have in their names?
  • Why does View Pending Changes use this icon: w ? Seriously, what is it meant to be?
  • Why does the View History icon use a green arrow in it: Untitled ? The Get actions use green arrows, so green must mean we are getting code onto our machines.

Why? – Toolbars

For this series I’ve chosen the C# development settings. After opening a new Class Library application, Visual Studio presents the following:


Image: Default toolbars.

Believe it or not, that’s just three toolbars, Standard, Test Tools and Text Editor, which give us around 60 buttons. With the Ultimate version of Visual Studio you can add a few more, 34 actually, lets call it 32 as I seem to have some BizTalk toolbars in there.


Image: A toolbar for every day in the month, and more.

  • Why do we get those three toolbars as standard?
  • Why do we not get the Build toolbar by default?
  • Why are some icons identical oooUntitled ?
  • Why do we have two ways of doing the same thing via the mouse Usntitled ?
  • Why are we given buttons that we will use very infrequently, e.g. Extension Manager Usssntitled ?
    I think I’m going to stop asking Why. 32 toolbars, almost 60 buttons out the box! I wonder if the Visual Studio team get statistics like the Office team with regards to how often features are used. I worry myself now that I might be missing features lost to me in those toolbars.

Let’s not forget that Visual Studio is a very powerful and complex product. Having all these toolbars is not a terribly bad thing, however it does remind me of how Office went from this mess to what is now a very slick ribbon based UI. Would that really work for Visual Studio? I’m not sure, but we’ll get to that in Part 4.

Given the sheer scale of what people can and want to do with Visual Studio, UI real estate is a very sacred and precious commodity. As it stands today, the menus and toolbars in Visual Studio are being treated as second, perhaps even third class citizens. As software developers we encounter extreme levels of frustration, complexity and challenges in our daily routine; we need and deserve more than what we have today.

Surely this screenshot has UX experts watering at the mouth! Winking smile

27-09-2010 15-50-05

Image: All toolbars selected

It’s now time to move from ‘Why?’ to ‘How!’.

  • In Part 3 we will look at what you can do today to get around this problem ‘efficiently’.
  • In Part 4 we will bring in a blank canvas and propose some simple and some radical solutions that the next version of Visual Studio can adopt to reduce the complexity of its UI and increase the day to day productivity of developers.

9 Replies to “Improving the Visual Studio 2010 UI Menu System – Part 2”

  1. Completely agree, I’ve streamlined my toolbars.
    Anything I don’t press (or they don’t show important info) doesn’t get shown. Most commands I use a keyboard shortcut instead. I’ve got it down to 11 functions – undo, redo (seeing history makes them add functionality than shortcut), solution config, solution platform, extension manager (I do actually use it quite a bit). Auto complete toggler, comment/uncomment (I should be using the shortcuts more for this), attach to process, and the rest are my macros.

  2. Way to go dude… now i hope someone in the team is listening . Maybe Dev11 will have a ribbon and also allow us to set default toolbars with the most logical menus for each type of project template. Do you know if the export settings also includes custom toolbars? back in the VS2005 days i was able to create new top level custom menus but those couldnt be exported due to limitations in the export settings feature. It would be cool to be able to do a complete customization for a team and then save those settings for everyone.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s