By Mark Latchey, on July 5th, 2013
It is common for desktop applications to use menus, tabs, dialogs to present and work with information. However for the web world, it is common to have more task-based UI with multiple screens and navigation.
Silverlight applications are mostly run in a web browser, so they should act like web applications, but developers tend to forget about it. Instead, Silverlight applications often behave like their desktop counterparts. In fact, one of the most popular reasons why users hate plug-ins like Silverlight and Flash is that they don’t behave like normal web applications. Users hate it if they hit refresh in the browser everything they have been doing is gone and they are faced with the start screen of the application. They hate it when they press the “Back” browser button they are not taken one step back, instead they go to wherever they were before lunching the application.
Just think about it, if the application is built with such a simple principle in mind that every location inside the application has a unique URL then it will give your users so much. They can bookmark a URL and open the application in place they need. They can send a URL to other users. If you application crushes, they can just hit F5 and end up in the same location as they were before the crush. You can remember the last URL and when the user starts the application again, you can provide an option to continue where she left off. Not even mentioning that the browser “Back” and “Forward” buttons will function properly.
That said, I believe that implementing navigation properly (when browser URL and history changes when information on the screen changes) is extremely important and very beneficial for almost any line-of-business Silverlight application.
But keep in mind that implementing navigation properly is not an easy task. From UX point of view, navigation is not always a good thing and should be used wisely. The more users navigate the more chances that they get lost. Here is what Alan Copper says about navigation:
“…the most important thing to realize about navigation is that, in almost all cases, it represents pure excise, or something close to it. Except in games where the goal is to navigate successfully through a maze of obstacles, navigation through software does not meet user goals, needs, or desires. Unnecessary or difficult navigation thus becomes a major frustration to users. In fact, it is the authors’ opinion that poorly designed navigation presents the number-one problem in the design of any software application or system…” (Alan Cooper and Robert Reimann, About Face (2003))
However, if you have more or less complex application then navigation cannot be simply avoided. It is impossible to put all the information and functionality on one screen. It is just that the navigation should be carefully designed.
Thankfully Silverlight provides all the necessary tools for implementing navigation. So I encourage you next time, whenever you set off to create a Silverlight project in Visual Studio, you do not select the “Silverlight Application” template, but choose “Silverlight Navigation Application” instead