.NET & Funky Fresh



  • <script type="text/javascript" src="http://ws.amazon.com/widgets/q?ServiceVersion=20070822&amp;MarketPlace=US&amp;ID=V20070822/US/bluspiconinc-20/8001/8b68bf4b-6724-40e7-99a5-a6decf6d8648"> </script>
Caliburn Silverlight Navigation Walkthrough: Introduction

Over the next several months I am going to be releasing various starter kits/samples for Caliburn.  Each sample will demonstrate a different application style.  I’ve factored each sample so that it has a reusable mini-framework, allowing developers to easily take the shell and start plugging in their own content.  Each sample will also be accompanied by several blog posts explaining the architecture, use of Caliburn and various points of interest. The samples will be progressive in nature.  I’ll talk about more “getting started with Caliburn” type material with the first sample than I will with later samples; those will focus more on various problem/solution topics.

The first sample I am releasing is a Silverlight Navigation Shell.  Go on and get the source code.


  • MVVM Approach
  • Static Modules
  • Lazy Modules (on demand load from Server)
  • IoC Integration (using Unity but works equally with 7 containers without changing application code)
  • Deep Linking (Browser History, Forward/Back Button and direct Url support; including lazy modules)
  • Modal Dialogs
  • Message Boxes
  • Loader UI
  • Actions
  • An IResult Library
    • Modals
    • Navigations (including composite navigations)
    • File Dialogs
    • Message Boxes
    • Loader
    • WebClient
    • Animation
  • Customizable Dialog Chrome
  • Resource Management
  • Screen Lifecycle
  • Passing Data to View Models
  • Custom Screen Shutdown
  • Convention over Configuration
  • Hierarchical View Models

Solution Structure


Above you can see an image of the interesting parts of the solution.  The Framework project contains all the reusable components of the sample.  All modules depend upon this framework, but have no dependency on the shell itself.  The Baz project is an example of a lazy module.  It only references the Framework, is not referenced by the shell and is downloaded on demand at runtime.  Within the NavigationShell, however, you will find two static modules: Foo and Bar.  Although they are part of the shell project, they actually have no dependencies on the shell’s implementation details, which is confined to the Shell namespace.

This solution is designed to be used as a starting point for navigation style applications. Simply remove the sample modules and begin adding your own.  In the future, it will be included as part of the Caliburn source download and I will keep it up to date with future versions of the framework as well as extend it with additional functionality.

As I mentioned above, I am going to do several posts on this shell. You can look forward to digging into a few interesting details of the implementation and techniques soon.

What are you waiting for?  Get the code.

Posted 12-03-2009 10:08 PM by Rob Eisenberg



uberVU - social comments wrote Social comments and analytics for this post
on 12-04-2009 5:36 PM

This post was mentioned on Twitter by EisenbergEffect: Blogged: Caliburn Silverlight Navigation Walkthrough: Introduction http://bit.ly/8vmIKj You can get the new sample at http://bit.ly/4HGpct

Josh wrote re: Caliburn Silverlight Navigation Walkthrough: Introduction
on 12-04-2009 9:31 PM

Hi Rob, Thanks for your ingenious Caliburm framework and the Silverlight framework sample.  I have a question/flaw to ask about however.  As I see it in this sample, when a dialog is displayed, the 'greyed-out' background controls still have focus, when the focus should go to the dialog opened.  Also, though the background is 'greyed-out', it is still clickable and quite active.  Is there a way to solve this?

You can see the problem by starting the solution, clicking on Bar (or Tab-Enter), and then pressing Enter multiple times.  Instead of dismissing the dialog, multiple dialogs are opened on top of the others.


Rob Eisenberg wrote re: Caliburn Silverlight Navigation Walkthrough: Introduction
on 12-04-2009 9:48 PM

Wow.  That certainly is a flaw.  I'll try and get that fixer and post an updated version.  Thanks!  I'll post here when it is done.

Sanjeev Agarwal wrote Daily tech links for .net and related technologies - December 5-6, 2009
on 12-05-2009 12:00 PM

Daily tech links for .net and related technologies - December 5-6, 2009 Web Development Resolving ASP

Rob Eisenberg wrote re: Caliburn Silverlight Navigation Walkthrough: Introduction
on 12-05-2009 3:23 PM

Ok.  I've updated the sample Silverlight Navigation Shell to Version 1.1  I think you will find the modal dialog/focus issues to be much improved.  You can get it here:  caliburn.codeplex.com/.../ProjectReleases.aspx

Rusek wrote re: Caliburn Silverlight Navigation Walkthrough: Introduction
on 12-10-2009 9:15 AM

For me your example doesn't work. (ContactManager doesn't work as well.) When I click on menu item the Webpage Error pops up. It says:

Do you want to debug this webpage?

This webpage contains errors that might prevent it from displaying or working correctly. ... there are 2 option - to debug or not, when pick yes the debuger opens , there is only 1 line of code

error is in this line:

Sys.Application.addHistoryPoint({Page:null}, "Home");


'Sys' is undefined

Please Help.

Rob Eisenberg wrote re: Caliburn Silverlight Navigation Walkthrough: Introduction
on 12-10-2009 10:11 AM

You *must* set the Web as your startup page.  The history support sets up javascript within the web page and this will not work if you run the SL app directly.  This is true of both the Nav sample and the Contact Manager.  I believe the Nav sample says this in its readme.  I will update the Contact manager with these instructions if they are not present.

Rusek wrote re: Caliburn Silverlight Navigation Walkthrough: Introduction
on 12-11-2009 6:08 AM

TestWebClient.Web is set as startup project. In the project here is only one aspx file (ClietnTestPage.aspx) and it is set as Start Page.

Any other ideas?

Robert wrote re: Caliburn Silverlight Navigation Walkthrough: Introduction
on 02-04-2010 9:23 PM

Hi Rob, thanks for the awesome sample app! I look forward to diving in more deeply.

I did notice an unexpected behavior when I first ran it:

Clicking on the currently-active view (initally Bar, but it doesn't matter which) causes the "Are you sure you want to navigate away from this page?" message to appear, even though you aren't actually navigating away from it.

How can/should I avoid this message? Disable the currently active bar item?


Rob Eisenberg wrote re: Caliburn Silverlight Navigation Walkthrough: Introduction
on 02-05-2010 8:35 PM


Thanks for pointing out that odd behavior.  That's either a bug in the sample or in the framework.  I will look into that and get it fixed.

About The CodeBetter.Com Blog Network
CodeBetter.Com FAQ

Our Mission

Advertisers should contact Brendan

Google Reader or Homepage

del.icio.us CodeBetter.com Latest Items
Add to My Yahoo!
Subscribe with Bloglines
Subscribe in NewsGator Online
Subscribe with myFeedster
Add to My AOL
Furl CodeBetter.com Latest Items
Subscribe in Rojo

Member Projects
DimeCasts.Net - Derik Whittaker

Friends of Devlicio.us
Red-Gate Tools For SQL and .NET


SmartInspect .NET Logging
NGEDIT: ViEmu and Codekana
NHibernate Profiler
Balsamiq Mockups
JetBrains - ReSharper
Web Sequence Diagrams
Ducksboard<-- NEW Friend!


Site Copyright © 2007 CodeBetter.Com
Content Copyright Individual Bloggers


Community Server (Commercial Edition)