Silverlight 5?

Jun 20, 2012 at 4:16 PM

Are there any plans to support SL5?

Are you planing to look into WinRT support?



Jun 21, 2012 at 4:34 PM

Yes, I'm in the process of doing so. I've started by checking in a incomplete port of nRoute.Toolkit for Metro (WinRT) (Change set 69377), and that's the nRoute 5 branch. 

Whilst I'm porting to WinRT I'm looking to introduce async/await for SL5 and .NET4/.NET4.5, which obviously means using the TPL library. However, this would create a compiler dependency on VS11, as VS10 doesn't support async/await (see I'm not 100% sure about doing this, but it would certainly simplify a lot of the code rather than having lots of if/else for WinRT given its prominent use of async/await.

And lastly, I'm also thinking of dumping the Toolkit version/offshoot, and just having a single framework - with the Navigation bit optional. Having four versions is hard as it is.

Any suggestions, ideas, or help is very welcome.



Jun 21, 2012 at 5:50 PM

oh, didn't notice commits in that branch.

Ye, my follow up question were going to be about async.

Btw, have you tried .net Portable Class Libraries? I think some (or most) of the code could be stored there to reduce multiple version problem.

One approach would be, to make use of old begin/end async model, and as the adoption of vs11 get bigger, rewire it to async or do 2 sets of api with begin/end and asnyc.

As for toolkit, i never used it.


Thanks for your time


Jun 22, 2012 at 11:22 AM

Hi, I've updated the nRoute 5 branch to target Silverlight 5 - seems to work fine. I've also added/updated a sample project to Silverlight 5 - which also works without a hitch. However note, SL5 version has taken a dependency on Reactive Extenstion v2 RC (download from

Secondly, I know about portable libraries, but seemingly the problem is to add platform specific code you need to split your code into multiple assemblies as is the case with Rx Framework. I rather have the simplicity of a single dll, at least for now.

Lastly, after some thinking and reading I think rather than going full on async/await I'll rather go full on reactive framework - because it works with SL5, WP7, .NET 4, and WinRT. Further, you can also await an IObservable<T> - so that bridges the two worlds. Also, with some of the improvements in v2 of Rx Framework I think I want to change a lot of the internals of nRoute, specifically the multi-threaded code. In as much as possible I'm looking to remove every lock and have a monad in place, that should both make nRoute both simpler and perform better.

Should be interesting.

Jun 24, 2012 at 12:38 PM
Edited Jun 24, 2012 at 12:38 PM

Wow, migrated the whole project to SL5 and nRoute5 (latest source commit). With the exception of strict version references in project, everything went very well! Well done!

Jun 25, 2012 at 1:10 PM

Good to hear that, though note I just again updated the nRoute5 branch including building against a new release of Rx Framework - which fixed some assembly signing issues that could/were causing issues. You can download the Rx-release from

Let me know if you into any issues. Cheers.