nRoute’s origins can be traced as a navigation framework or as we called it an application-flow framework in the Silverlight 2 timeframe, which actually preceded Silverlight’s own navigation framework’s introduction. However, since then we’ve added tons
of features to evolve into a composite application framework, though navigation has been and will remain a core-competency.
A navigation-based approach to designing an application is a specialization that strongly influences the way you architect and constitute you application – and indeed for design and development purposes this specialization has to be proactively understood
and knowingly embraced. If you embrace this specialization, then nRoute today provides the best of the breed solution as far as navigation application goes – it takes the best of what we know from the Web and enriches it with the capabilities of a rich client.
That being said, navigation is not the only game in town and neither is it an all-or-nothing approach, it can be selectively used; and so as a matter of choice we offer a separate “navigation-sans” version of nRoute called nRoute Toolkit. The toolkit version
is a perfect subset of the full version so it allows you to “upgrade” to the navigation-enabled version if ever need be. Plus, when using other UI models such as Windows or Tabs driven ones, the toolkit version can be fully employed for the composition needs
of the application.
Beyond navigation, the other tenet that has strongly influenced nRoute’s approach is the MVVM pattern (see
Introduction to MVVM by John Smith). Since the onset, MVVM has been a driving force in influencing how problems are addressed in nRoute, and it would be a fair assessment to say without following
MVVM pattern you wouldn’t be able to get the most out of nRoute. Further, being a composite application framework, MVVM plays an important role in defining how we approach the View-ViewModel separation or more broadly Visual v/s the Non-Visual (logical) implementation.