Patrick Smacchia [MVP C#]

Sponsors

The Lounge

Advertisement

Images in this post missing? We recently lost them in a site migration. We're working to restore these as you read this. Should you need an image in an emergency, please contact us at imagehelp@codebetter.com
UI matters (Revisited): Menus and ToolBars vs. Office 2007 Ribbons

 

My post about our current work in enhancing the VisualNDepend UI with Ribbon Office 2007 style got a lot of feedbacks. Thanks to everybody who participate in the debate and especially to:

 

  • Wesner Moise who took the time to clearly expose its motivation on his blog about his choice of Ribbon for the UI of the NStatic tool.
  • Chris Bryant, Senior Product Manager, Microsoft Office, who took the time to advise us and to answer our questions about the Ribbon license (more on this later).

 

 

 

Based on all these feedbacks, we got convinced that the Ribbon choice is the good one. It seems that around 2 users on 3 would prefer Ribbon over Menus and ToolBars (aka. CommandBar). Although this ratio is significant, it is not high enough to allow us completely getting rid of the CommandBar option. Hence, in the option menu we will let the choice to our users to choose between Ribbon or (exclusive) CommandBar (Ribbon is the choice by default).

 


 

 

 

Supporting both Ribbon and CommandBar leaded us to some interesting refactoring of our MainForm class. Basically, we now have 2 MainForm classes, one that derives from the DevExpress.XtraEditors.XtraForm class (that directly derives from System.Windows.Forms.Form) and one that derives from  DevExpress.XtraBars.Ribbon.RibbonForm (that directly derives from XtraForm). Both classes rely on 15 common high level UI responsibility managers (one for file menu actions, one for project UI appearance while project loading, one for skin management, one for panel management, one for UI option persistence etc). Our 2 MainForm classes contain controls initialization code that is generated by the VisualStudio's Windows Form designer and also managers' objects' initialization. Except this, our MainForm classes are empty. This choice avoids duplicating code but also allow logically partitioning our big set of controls and as a consequence, we get a more rationalized code.

 

 

 

Since my first post on Ribbon vs. CommandBar, we figured out that we were not abiding by the Ribbon UI Microsoft license. Basically we were missing the application menu, the Quick access toolbar and some other details:

 


 

 

 

To respect the Ribbon UI Microsoft license, you must also make sure that you get only one Ribbon menu, that can optionally contains RibbonTab.

 


 

 

 

At first we were frustrated by this rule because we liked the fact to host a ribbon in our docking panel.

 

We then moved our Ribbon related to the dependency feature to the main Ribbon and figured out that this was the right think to do. Having 2 Ribbons shown at the same time represent a lot of screen real estate dedicated to commands.More importantly, having just one Ribbon with tabs makes the concepts of contextual UI a reality. When the user wants to browse dependencies, she doesn’t need to see UI commands related to metrics or build comparison.

 


 

 

 

However, we know that some advanced users work with both metrics and dependencies panels at the same time. It is especially convenient if you have more than one monitor. To handle this scenario, we decided to allow users to show/hide the ToolBars in respective panels at whim. It didn’t mean more work because these ToolBars were already implemented to support the Menus and ToolBars scenario.

 


 

 

 

Finally we took a chance on this major UI refactoring to propose a use-case oriented help panel that should result in a less steep learning curve:

 


 

 

 

We also propose a dozen of different UI skins. First we just wanted one skin to avoid investing energy in skins. But then we realized that the framework DXperience offers this possibility almost for free.

 


 

Once again, thanks for feedbacks and don't hesistate if you have more remarks. We hope to release this new UI (with some bug fixes) by mid september.

 


Posted 08-29-2007 6:26 PM by Patrick Smacchia
Filed under:

[Advertisement]

Comments

Mike wrote re: UI matters (Revisited): Menus and ToolBars vs. Office 2007 Ribbons
on 08-29-2007 2:23 PM

So why exactly do you need to abide to a licence for a user interface? Did you have to do that for the old interface? If not, how is it an improvement for you and your product, that you need to have some licence for a GUI? Since when do we need a licence for the GUI we create. Did you get legal advice on this, or did they just scare you into it?

Joe Ocampo wrote re: UI matters (Revisited): Menus and ToolBars vs. Office 2007 Ribbons
on 08-29-2007 2:39 PM

I don't know if asking this question violates some design heuristic of the ribbon control but from a screen real estate perspective is it possible to have the ribbon cascade in and out as needed? I would love this feature in Office 2007.

Patrick Smacchia wrote re: UI matters (Revisited): Menus and ToolBars vs. Office 2007 Ribbons
on 08-29-2007 3:15 PM

The Office 2007 Ribbon license doesn't cost a penny it is 100% free. My understanding is that MS created this license to make sure that in the future, all UI that uses Ribbon look alike. This way, it will be easier for users to get started with various products.

Our Ribbon experience relates this fact well. If you read my first post you'll see that our first UI choice were not that judicious and not very close to what Office UI looks like. If the license were not here to 'scare' us, maybe our UI would be more difficult to start with.

My opinion is that it is a good thing. Futue NDepend users that are used to Office Ribbon will feel at home when discovering NDepend. Also, MS spent hundreds of M$ in this Ribbon stuff, and I'm certain that me and my team could not have done a more comprehensive UI by ourselves.

Joe, I'm not sure to understand the term 'ribbon cascade in and out as needed' but if you mean having several Ribbon visible in the same Window the answer is no, the license doesn't permit that (maybe you can play with the 'Window' term, is a panel a window?). If you mean collapsing the Ribbon UI, take a look at Office 2007, it is already implemented by double-clicking any tab.

Joe Ocampo wrote re: UI matters (Revisited): Menus and ToolBars vs. Office 2007 Ribbons
on 08-29-2007 6:15 PM

Awesome!!!  I didn't know that, thanks Patrick!  It's the simple things that make me happy.

David Martin wrote re: UI matters (Revisited): Menus and ToolBars vs. Office 2007 Ribbons
on 08-30-2007 11:03 AM

The new UI looks great, and I'm a fan of the new Ribbon UI from MS.  However, it was interesting to see that the DevX version does not strictly adhere to the guidelines.  For the Quick Access Toolbar (QAT) the 9th guideline states that the right border MUST have a concave curve.  They even go so far as to state the the radius of the concave curve MUST equal the radius of a circle centered in the app title bar.

A little too much guidance in my opinion - would rather have seen a SHOULD unstead of a MUST.  But there you have it.

Keep up the good work.  I'm mainly glad to see more people concerning themselves with user experience.

Links (8/30/2007) « Steve Pietrek’s SharePoint Stuff wrote Links (8/30/2007) « Steve Pietrek’s SharePoint Stuff
on 08-30-2007 9:01 PM

Pingback from  Links (8/30/2007) « Steve Pietrek’s SharePoint Stuff

UI matters: Menus and ToolBars vs. Office 2007 Ribbons - Patrick Smacchia [MVP C#] wrote UI matters: Menus and ToolBars vs. Office 2007 Ribbons - Patrick Smacchia [MVP C#]
on 08-31-2007 12:33 PM

Pingback from  UI matters: Menus and ToolBars vs. Office 2007 Ribbons - Patrick Smacchia [MVP C#]

Patrick Smacchia [MVP C#] wrote Dissecting an undeterministic Windows Forms v2 bug
on 09-12-2007 1:28 PM

We are glad that we have just released NDepend v2.4 with the thoroughly revamped UI that I talked about

??????? wrote re: UI matters (Revisited): Menus and ToolBars vs. Office 2007 Ribbons
on 10-19-2007 5:40 AM

I don't know if asking this question violates some design heuristic of the ribbon control but from a screen real estate perspective is it possible to have the ribbon cascade in and out as needed? I would love this feature in Office 2007.

Montre wrote re: UI matters (Revisited): Menus and ToolBars vs. Office 2007 Ribbons
on 12-29-2008 6:08 PM

Hello Patrick

Thanks for sharing - I think it will be quite common use case! Would you mind telling us a little bit more about the architecture of two mainforms, how they are selected in runtime and how code duplication was avoided?

thanks a lot

cheers

M

Esraa wrote re: UI matters (Revisited): Menus and ToolBars vs. Office 2007 Ribbons
on 03-23-2009 10:41 AM

What are the steps used to create a ribbon ?!

Patrick Smacchia wrote re: UI matters (Revisited): Menus and ToolBars vs. Office 2007 Ribbons
on 03-25-2009 12:07 AM

So far we are using DevExpress DXPerience Windows Form library but it is a bit too buggy unfortunatly.

Add a Comment

(required)  
(optional)
(required)  
Remember Me?