This article is the first of a serie that will show you how to develop a Silverlight application using the nRoute framework.
What is nRoute ?
nRoute is a framework targeting Silverlight, WP7 and WPF helping in the development of modular applications respecting the principle and the separation of concerns.
To accomplish this task, nRoute provides the tools to decompose your application into small pieces and the glue to stick it all together again during runtime. It was made for developing applications using the MVVM pattern but thinking about it as a simple MVVM framework would be a mistake. Considering all the functionalities that it provides, nRoute is closer to PRISM than LightMVVM.
nRoute is originally a navigation framework like the one that was introduced in Silverlight 3. nRoute’s approach is quiet different though as its based on ASP.NET MVC and reimplements the concept of controllers. It is able to handle navigation history or saving the state of the views (fields values for exemple) before navigation on another view occurs (this is especially useful in Wizard type applications). The navigation framework is optional in nRoute and you can download nRoute without it : nRoute Toolkit + Navigation Framework => nRoute Framework.
nRoute allows you to develop views that are easily editable within Microsoft Expression Blend. As such, it provides a great amount of behaviors facilitating navigation, viewmodels’ initialisation, commands’ execution or controller actions’ execution.
Similarly to the Prism’s EventAggregator, it provides a way for controls to communicate with each others via communication channels using Reactive Extensions. This part of the framework is called the “Messaging Framework”.
All this would not work without the RLF (Resource Locator Framework) that provides IoC (inversion of control), DI (dependency injection) or dynamically loading controls from remote assemblies.
Now that you have a better vision of what is nRoute and what it is able to do you may be wondering…
Why this serie ?
nRoute is a very good framework that lacks some documentations on some parts. As I’m using it building LOB applications and that I’m very satisfied with it I decided to share what I’ve learnt about it and to show you, step by step, how to use the different parts of the framework.
The next article will talk about the basics of MVVM development using nRoute.
Some useful links
nRoute’s Codeplex : http://nroute.codeplex.com/
nRoute’s creator’s blog : http://www.orktane.com/