Having a developer mindset instead of a more creative designer mindset I never really got in to Silverlight 1.*, I learned what I needed to know but never used it. Why? Basically because I work on web applications and not web sites and the lack of native support for application features such as form controls led me to see Silverlight 1.* as limited to funky presentation media based stuff. I am sure this view will be challenged and I will generate some comment but it is just the way I think of things.
Silverlight 2.* has changed things for me as it introduces native controls and support for Silverlight Applications. Now this got me exited, real WPF applications running in browsers, and not limited to IE, cool stuff so I had to find somewhere to use this quick. I run a community portal for cyclists who use Virtual Reality software to train indoors when the weather is less than ideal for riding outside (you can see this at www.vrcyclist.com ) it is a site that uses all the latest Microsoft web technologies and I provide it free on the basis that I have the right to develop it as I see fit and use whatever technologies suit me. What better place to practice and show off my Silverlight skiils. Behind the site is a System Manager application, which is already using ASP.NET AJAX Extension, but I decided to re-write this as a Silverlight 2.* application using the beta 1 runtime. Once I have perfected my skills I will gradually extend the use of Silverlight to the rest of the site.
So I set about designing a new System Manager for the site. The current version uses a Windows Explorer like UI with a tree view on the left and a panel on the right where the UI for the node selected in the tree is displayed and operates. I use the RadSplitter from Telerik Rad Controls for ASP.NET Ajax for the layout and the RadTree from the same control suite for the tree (actually I use the Telerik controls extensively throughout the whole site). I like this kind of UI so I decided to replicate it in my new System Manager. The image below will give you an idea of what I am looking to reproduce, sorry about the quality I opted for a faster upload time.

It wasn't long before I remembered just how many "Pages" this application application will comprise, and I didn't want my members waiting a long time for the application to download before it was usable. What I really wanted was to download a Shell application that loaded quickly then load the other pages on demand, so I started googling and found a couple of really useful articles by Thomas Holloway, first this one Optimizing Silverlight with Dynamic Modules then this one Basic Silverlight Navigation. Inspired by these articles and my new found urge to share my knowledge and experience I decided to create a framework based on the concepts and some of the code in these articles and share my journey with those that are interested.
I decided to call my framework Sliverlight NavFx or just plain NavFx and in a series of articles following this one I am going to present the framework and discuss the things I learned about what does and doesn't work and I will provide the code for download. Along the way I will show you how to use NavFx to create lightweight modular applications using Silverlight 2.*.
NavFx Part 1 is now available