.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


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)