UPDATED: 26 Sep 2010 – Added additional menus available once Project is added to Source Control.
Something different! This is the first post in a series that takes a look at the state of the Visual Studio 2010 UI menu system and explores ways of addressing what I believe is a fairly antiquated, bloated and inefficient interface. I make no claims to being a UX expert; however my daily frustration with complicated scrolling menus has driven me to put some thoughts down. I would love to hear from UX experts out there who read this and can offer better or additional solutions.
Every release of Visual Studio brings with it new features, many of which require additions to the Menu System to expose their functionality. These additions may come in the form of additions to the Context menus, the Toolbar menus or even both. Not only do these new out the box features add to the UI complexity, but we also have third party tools like ReSharper and Visual Studio Extensions which ‘compete’ for UI real estate. They don’t really compete; there is no awareness of other additions to prevent complexity, they all just add, add, and add. There are no restrictions.
Let’s start with the Context Menus. Unless you have a super resolution screen (my laptop is only 1200×800), you very quickly end up with the scrolling menus from hell,
Image: Scrolling menus from hell.
And if you do have a screen with a super resolution, then all you get is the ability to more quickly look through the frustratingly large menu for that one action you would like to perform.
Let’s start by looking at some sample menus, firstly the Project context menu. Out the box, no additional software, how many things do you think you can do to a C# Class Library project?
- Add Reference
- Add Item
- That’s 5 off the top of my head. Let’s just go for 10. What did you guess? More? Less? Did you guess 28?
Image: 28 things to do when right clicking a C# Class Library project in Visual Studio 2010
Ok so we have 28, but no-one works with Visual Studio or a project in this state though. Let’s add the solution to Source Control, in my case Team Foundation Server. We get another 5 menus, but we lose ‘Add solution to Source Control…’, so we now have 32 context menu options to use on our project.
Image: New Source Control Options
Now we need to add an excellent extension for productivity, PowerCommands for Visual Studio 2010. This gives us another 6, so we are up to 38 context menu options to use on our project.
Image: Additional Power Commands menus
Finally we need to add ReSharper, a tool which I find immensely helpful in day to day coding. This adds another 8.
Image: Additional ReSharper Menus
So there we go; the best version of Visual Studio ever, with some great productivity additions and we’ve ended up with 46 context menu options on a project. While we are at it we may as well look at the File context menu as that’s possibly the most used context menu in Visual Studio.
Once an item is checked in there are three additional menu items available, so at times it means we have 49 context menus to deal with.
Out the box you get this context menu on a C# file. It’s already at 10 menu options.
Image: Out the box C# file context menu
After adding the project to source control, adding the PowerCommands extension and ReSharper we get the following 33 menu options to deal with!
Image: File menu context options
I work for hours in Visual Studio every day and frequently get frustrated that I can’t find something on the context menus. I believe this is caused by
- Too many options
- The layout
- The icons
We’ll explore this further in the next post.
- In Part 2 we will take a closer look at the current menus, including the Toolbars.
- 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.