Silverlight 5?

Jun 20, 2012 at 5:16 PM

Are there any plans to support SL5?

Are you planing to look into WinRT support?

 

Thanks

Coordinator
Jun 21, 2012 at 5: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 http://10rem.net/blog/2012/05/22/using-async-and-await-in-silverlight-5-and-net-4-in-visual-studio-11-with-the-async-targeting-pack). 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.

Cheers,
Rishi 

 

Jun 21, 2012 at 6: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

 

Coordinator
Jun 22, 2012 at 12:22 PM

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 http://www.microsoft.com/en-us/download/details.aspx?id=30145).

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 1:38 PM
Edited Jun 24, 2012 at 1: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!

Coordinator
Jun 25, 2012 at 2: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 http://www.microsoft.com/en-us/download/details.aspx?id=30145

Let me know if you into any issues. Cheers.