The LOB Chronicles Episode 10: UI Consistency

Thursday, October 13, 2011 by Evan Hutnick | Comments 15

We have taken quite an adventure in chronicling the new Silverlight CRM demo and all the behind-the-scenes work that goes into making new demos for our site, but now we finally get to talk about the really fun stuff – UI. I know, I know, depending on what hat you are wearing at your company you may be thinking “Hey, I loved the previous posts on MEF (here and here) as well as what you were saying about the Repository Pattern, what’s all this UI business?” As it turns out, Telerik sells a wide range of UI components that are used to provide enhanced user experience as well as developer productivity. We actually sell a lot of them. :)

But more to the point, we’ve talked code, before that we discussed UX and what would make for a nice flow to our application via navigation patterns and empathy diagrams, but now we’ve got to combine all of this great work into a functional application. And when you think of an application that you use every day, say Outlook, do you really care if the developers used MEF, MVVM, if a Repository is being used, or if extensive UX work went into figuring out the flow of the application? If you’re a developer you might, but the other 99% of the world is going to look at an application first and only critique it if something goes wrong or doesn’t “feel” right. No crashes and a responsive application means the developers did well, an intelligent navigation path that maximizes productivity speaks well to UX, but without a UI tying it all together we’re just looking at DOS again. And while I love DOS (my first ever game was written using ZZT) we can do a bit better than that in 2011.

User Interface Consistency

An important aspect of any piece of software is providing a consistent layout. This is what enables users to move from one screen or view to the next and carry over some knowledge of how to operate the application, or even to move from one application to another on a new system and have an intrinsic understanding that in order to do X you must complete Y action. Take Windows Phone and now WinRT as an example, the Application Bar is a consistent user experience across both platforms that provides a menu-like experience, surfacing important commands that the user will need easy access to. Another example is the RibbonUI found in the Office line of products. At first, the RibbonUI seemed to be overly complex and offer too much to click on compared to a traditional menu structure, but over time the utility of having so many options just a quick click away, grouped into logical groupings under logical tab arrangements, indeed becomes clear. One step better, however, is that once you get familiar with the RibbonUI in one application that knowledge transfers over to others, so while Word and Excel have vastly different functionality, using the RibbonUI has become a more natural experience in both because it is consistent.

So does this mean that every application you design should include a RibbonUI to ensure people know how to utilize the menu system with ease? Well, you could, but that is slightly missing the point. The reason these consistent experiences matter is that the human brain recognizes and remembers both specific items as well as location, so when you place a certain icon in the lower left hand portion of your desktop your brain not only registers that there is a recycle bin icon but where it is relative to everything else on the screen. There’s actually a great post about this from the Windows 8 team in discussing the architecture of the new Start menu – open it up in a new tab and give it a read once you finish this article. Therefore, when designing software we need to take careful consideration into not only what functionality is required on our screens/views but also into how we are positioning elements for consistency and efficiency.

Crafting a UI with a Grid

What would a post like this be without some examples? Our designers are hard at work ensuring that all the good development work being done here will shine through to the UI, but one of the biggest challenges they face is how to properly organize everything. The answer to this is grid-based layouts to ensure everything flows and scales nicely within the application, not to mention the ability to add animations that create a smooth experience between various views. Here’s an example of the grid layout being used for the Company Overview view:

Company overview grid

As well as the Company Contacts view:

Company contacts grid

Notice how everything is aligned to a specific layout? This will create a nice layout to design against as well as a nicer user experience when navigating through the application as things will align to the grid and not be disjointed from one view to the next.

To demonstrate this even better, here’s a look at the companies and contacts pages from the demo in their pre-grid and post-grid forms. Yes there have been some definite UI improvements in how data is displayed (I love our designers!), but notice as you go from the before to the after shots how much nicer the flow is between the two ‘afters’ than between the two ‘befores’:

Companies Before:

Companies View Before

Companies After:

Companies View After

Contacts Before:

Contacts Before

Contacts After:

Contacts After

Layout flows nicely, buttons in the UI are in consistent places to ensure that fast navigation as well as entry/editing are a seamless experience, and things just ‘line up’. Our brains especially like this last one whether you realize it or not, it’s the same reason that things like the 960 grid system are used by so many web designers today, as the careful alignment and arrangement of UI elements is key to making an application (or website) flow right for users.

Speaking of which – take a look at this download (in Blend, and assure FluidLayout and TransitionPreview are on!) and pop open this quick screencast to see this in action. You can see how when our designer moves between visual states the sections animate appropriately – which is awesome in its own regard – but now that we’re moving to this grid-based layout system you’ll find a similar animated experience throughout the application. Consistency. :)

Next Episode

Next time around we’re aiming to have another code drop to showcase some of the progress being made with this demo. We’re only a few short weeks away from the upcoming Q3 release, made even more special by this demo being released, so the pressure is on to get our UI together, our viewmodels refactored and working optimally, and to keep producing these posts to help keep you, our captivated audience, excited for what comes next!

Stay tuned!

@EvanHutnick


15 Comments

  • reno 13 Oct 2011
    Very cool -- I learned something new today and didn't know about Transition Preview (beats having to hit F5 and wait for it to build everytime to see the animation results) -- thanks for the sample solution and video!
  • reno 13 Oct 2011
    Also I really like the column expanding/collapsing transitions and was wondering if you know of a step by step tutorial somewhere that would go into detail of how to build the transitions like this?  I'm a dev but am interested in learning more about how to design things like this so I can better explain to our primarily HTML/CSS designers how to use Blend and slowly get them to like XAML more.
  • DeveloperDan 18 Oct 2011
    For those who dislike the black background can the theme be changed at design time (or run time if possible)? I prefer the white background as shown on your LOB Chronicles home page: http://www.telerik.com/products/silverlight/whats-new/lob-chronicles.aspx
  • Kostkac 20 Oct 2011
    Is it tru that next release of ASP.NET toolkit will have release version Metro UI skin bundled and ready for production?
  • Evan 21 Oct 2011
    @reno - Sounds like a fun challenge to put that together, just listed that in our internal TeamPulse instance that we use for planning so it can get scheduled in a future sprint.
    @DeveloperDan - The original concepts were designed with the white background but design is currently being done against a dark theme.  This is all based on our Metro skin, however, and the same designers who are working on this also worked on the Sales/Exec dashboards, so it is possible they'll have time to work in different themes, but we'll see as we get closer to Q3.
    @Kostkac - Don't know about the toolkit, but RadControls for ASP.Net Ajax will have a Metro theme - here is the preview:
    http://www.telerik.com/support/skins/details/metro-skin-for-asp-net-ajax.aspx
  • Kostkac 21 Oct 2011
    @Evan Well, I know its there we tried to implment it but we found out some controls are completely left behind llike tab stip control. There is not styling at all, Maybe we are doing something wrong, but I dont think so. Thats why I'm asking.
  • Evan 21 Oct 2011
    @Kostkac - That was a preview and the roadmap has the official theme coming in the Q3 release (dropping this November), so it is likely our front-end designers just had not gotten to those yet.  They're busy folks. :)  But stay tuned for the release for the full implementation.
  • Teodor Bozhikov 24 Oct 2011
    @reno Here is a link to the Dynamic Layout and Transitions featuring the technique we have used to expand/collapse columns:
    http://gallery.expression.microsoft.com/DynamicLayoutTrans/
    Hope it will help :)
     
  • Gargi 29 Oct 2011
    Please provide some examples on RadSlider editting with Expression Blend. . .
  • Evan 29 Oct 2011
    @Gargi - This has been logged as a future work item for the Evangelism team (probably with some help from our awesome designers :D), keep your eyes peeled for it after the Q3 2011 release!    
  • Kostkac 07 Nov 2011
    @Evan Do you have any info about different colors than blue for skins? We would love to offer to our clients way to pick their favourte colour. for whole app, how cool would that be, plus with simplicity of degin its not that much effort. 
  • Evan 10 Nov 2011
    @Kostkac - If you're using the Metro theme included with our controls then you're in luck.  It allows you to easily swap the color palette and have that reflected throughout the entire control stack.  Check out the Exec Dashboard demo for one example that our team put together for how this could work: http://demos.telerik.com/silverlight/executivedashboard/
       
  • Kostkac 20 Nov 2011
    @Evan how about changing colors in ASP.NET AJAX (webforms) app?
    Thanks
  • Evan 21 Nov 2011
    @Kostkac For that you could always use the Visual Style Builder, it lets you tweak the colors and settings that you see in both Ajax and MVC controls to better suit your needs.  That can be found here:
    http://www.telerik.com/products/aspnet-ajax/visual-style-builder.aspx
  • Dave 14 Dec 2011
    This layout does not really work for me. Each section seamlessly bleeds into the next. There's no clear delineation between the columns. Seems to be a mish-mash of information.
    Don't get me wrong, I'm not saying it is awful. But it could be improved.

Add comment

  1. Formatting options
       
     
     
     
     
       
  2. (optional, emails won't be shown on public pages)
  3. (optional)