/ Silverlight

Choosing Silverlight Navigation Applications Over "Classic" Silverlight Applications

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.

If the application is built with a simple principle in mind that** every location inside the application has a unique URL** then your users will get everything what they can except from any website. They can bookmark a URL and open the application in place they need. They can send a URL to other users. If they restart the browser the app will open at the same location, not the home screen. 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 a 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 properly. When you create a new Silverlight project in Visual Studio, there are two templates: "Silverlight Application" and  "Silverlight Navigation Application". So in most cases you should be choosing the later.

Pavlo Glazkov

Pavlo Glazkov

Programmer. Full stack, with a focus on UI. JavaScript/TypeScript, Angular, Node.js, .NET

Read More