Update: This blog entry has been revisited here.
We are
currently refactoring the NDepend UI and we hope to make it simpler. Everything
started from a simple, yet judicious, remark from my friends and colleagues Bob Powell and Fabrice Marguerie:
When you
target .NET developers, the closer to VisualStudio’UI, the better your UI is.
I then
realized that NDepend UI has room for improvement to abide by this simple tenet
and decided that the next feature will be a refactored UI. The UI will be
delivered in two phases:
NDepend 2.4
(scheduled for September) will have:
- Docking
windows
- Menus
and ToolBars
- A
new Options Window
- Super
tooltip (with pictures when relevant and 2 levels of explanations)
- The
possibility to choose the skin (the default will be the VisualStudio 2008 one,
but we’ll propose also Office 2007 Blue/Black/Silver, Office 2003 and many
others)
- Automatic
saving/restoring of layout.
- Enhanced
help categorized by use-case (metric, dependencies browsing, build comparison
etc..). For each use case a starter will be proposed
NDepend 2.5
(scheduled for October) will have:
- Integration
of NDepend.Project.exe into VisualNDepend.exe (a la VisualStudio Project
Properties)
- Start
Page
- Colorful information about Code Elements.
This way we
expect that .NET developers will more feel at home when using NDepend which
should result in a less steep learning curve. We needed more than default WindowsForm 2.0 controls. Following Wesner Moise (from NStatic) advice, we will rely on the DevExpress’ DXperience
controls suite (free for MVPs by the way). We already tinker a lot with
DXperience and I’m completely satisfied with it. Good object model, full
integration with VisualStudio Windows Form editor, nice rendering and good
runtime performances. The only drawback is that the NDepend redistributable zip
file will grow from 1.7 to around 6 MB because of the weight of DXperience DLLs.
I like to keep things small when possible but here we had no choices.
We had to
take a decision. On one hand VisualStudio.NET (all versions) heavily relies on Menus
and ToolBars. On the other hand, since Office2007 Microsoft claims that Ribbons
represent a better way than Menus and ToolBars to organize features of a
product. I suppose that completely refactoring the UI of their second flagship
product was a big challenge for MS and that they thought about it very
carefully.
In order to
abide by the ‘closer to VS UI, the better’ tenet, we first decided to choose Menus
and ToolBars. After all, Ribbons are good for beginners but NDepend users are
experienced developers. Here is what the Menus and ToolBars UI looks like:

This
setting is automatically saved and will be restored for future use and it can be
changed at anytime.
The main
drawbacks of this approach is that it gives 2 appearances to the product and it adds a button. On the
other hand, we expect that experienced developers are used to configure their tool
appearance.
However,
when starting using NDepend, experienced developers are NDepend beginners and
we then thought that Ribbons could be a good choice also. We did a UI try and here
is what the Ribbon UI looks like: