Description

In the second of two navigation videos we filmed, Karl Shifflett joins John Papa to demonstrate how he made some simple extensions to the navigation API in Silverlight in order to solve very common business problems. Karl demonstrates how to navigate away
from a screen and leave markers indicating that the screen is still active even though it is hidden. He also demonstrates how to manage state while navigating between different pages.

This episode is jam packed with a ton of great navigation strategies and tips that you won't want to miss.

Great video but I have some concerns about this "non-linear navigation" pattern. I was initially excited to see Billy Hollis' demo on DNRTv as well as Karl's BBQShack implementation, but I'm starting to think NLN is more of a workaround for Silverlight's
limitations rather than an optimal solution for multitasking within a single app.

With a true desktop app you can spawn real top-level windows for record editing or standalone tasks and take advantage of the OS's window management features to multitask, especially on Windows 7 with its new Taskbar and Aero Snap features. If window clutter
is a concern you could go with a tabbed UI like in modern browsers, or even better, allow drag and drop switching between both models as in Google's Chrome browser.

With a traditional web app (assuming it doesn't use popups) you can rely on the browser itself to open tabs/windows from links to other parts or your app by middle/right clicking on said links and multitask that way.

I'm guessing that these two methods are impractical with a Silverlight app.

On another note, I'm curious to know how this new SL4 navigation stuff compares to WPF's navigation features and whether any of this will (or should) make its way back into WPF.

I'm not a fan of LOB apps that spawn multiple windows. I've seen business app end users desktops cluttered with a mess of windows that leads to all sorts of problems. Some of the problems are due to training and using, some because of the software allowing
the non-advanced computer user the ability to over extend themselves.

I think the target user is a prime consideration when choosing a navigation solution.

Good points. If you have an example to share that demo's what you wrote about, please share. Always interested in different approaches.

The main tab would contain all of your search screens and such and the additional tabs would be opened for detail screens, reports, and complex multiscreen tasks. Those detail tabs could also be dragged away to create top level windows for when you want
to refer to one window while working in another. Consider it a hybrid between a completely navigational app and one where every screen is opened in a new tab (or window).

I worry that by hiding the clutter behind one or more small numbers or badges in the NLN UI, a user could get themselves deep into a stack of opened records without noticing it. With this hybrid tabbed browser style approach you would notice all the tabs
you've piled up at the top of the window.

One advantage of your BBQShack and Hollis' design is that the navigation icons are always accessible from any screen whereas mine are only on the main tab.

Thanks for your comments and point of view. window clutter is a concern you could go with a tabbed UI like in modern browsers, or even better, allow drag and drop switching between both models as in Google's Chrome browser.

True. My approach is still NLNish and is not all that different from yours. I'm just presenting the lists of open items as tabs accross the top of the window instead of of hiding them behind one or more numbers or in listsboxes somewhere in the UI. In fact,
the Contoso App screen shot that I borrowed for my mockup appears to use NLN in the form of the open customers list at the top left. You can see I was experimenting with wher one could put the number of open items in such a UI with that red badge next to "Employees".
One of my concerns was that the app I have in mind would have a two level menu like the Zune client rather than the one level menu of modules that the Contoso App has. Where would the badges go in such a design?

"Does your approach allow the user to have multiple forms open at once? ex, sales, billing and a report? Does form get torn down if you navigate away from it?"

Yes, yes, and no.

Individual invoices, bills, or reports would be opened as tabs across the top of the window. The screens for looking up invoices, bills or available reports would all be contained in the leftmost tab, though I could imagine allowing one to open another instance
of that tab as well, say by middle clicking one of the module links.

Nice job Karl! It's great to see what you've done with the navigation framework. Looks like Navigatus has come a long way. I'll definitely need to check out the new content loader. Thanks again for the video!