7/12/2013 At the moment, Open RIA Services is 87% cross platform

Categories: Open RIA Services, General Other articles by:ColinBlair Colin Blair

One of the main goals for Open RIA Services is to make it cross platform. You should be able to use the native client across any .NET platform. The development plan for accomplishing this is really complicated, sophisticated, and technical process. This process uses the following steps:

  1. Branch the code
  2. Manually convert projects to Portable Class Libraries
  3. Recompile
  4. Fix compilation errors where possible
  5. Repeat steps 3 and 4 as often as needed until code simple can't be made cross platform
  6. Strip code that isn't cross platform out and move it into platform specific support libraries
  7. Write new HttpClient based service layer to talk to Web API based DomainController

I know, that sounds as sophisticated as trying to fix my phone by hitting it with a rock until it works. What I didn't say is that I already know most of the code that is not going to compile. How? Xamarin told me.

What I find must astounding is that without doing anything we are 98% compatible with iOS. We apparently just need to strip out the CollectionViewSource code and we are ready to support the iPhone. I am sure that in practice the reality will be much more complicated, but having some hard numbers before we even have code is still reassuring.

The piece of RIA Services that actually communicates with the server, the System.ServiceModel.DomainService.Client.Web.dll in WCF RIA Services, is at 82% compatibility. We are replacing it completely with a new HttpClient based service layer so I didn't include it in the above analysis.

In case you are wondering (for purely academic curiosity of course), the server dlls of RIA Services are 67% cross platform, mostly hamstrung by Windows Phone and WIndows Store not supporting ASP.NET.

This content has not been rated yet. 



Hello Colin,

Will WCF RIA Services ( >= 5.x.x.x ) will only support HttpClient ?
I mean supporting nettcpbinding (binary data transfer) on Silverlight or on Windows (or on WP) is more faster than http.
It would be nice if WCF RIA Services automaticaly detect the client and if it is Silverlight or Windows (or WP) then use nettcpbinding otherwise use the HttpClient(Websocket?).


7/15/2013 7:21:01 PM

Colin Blair

I haven't really looked into nettcpbinding. WCF RIA Services requires the HttpContext which is why it has never supported nettcpbinding in the past. For Open RIA Services we are leaving WCF completely and switching over to Web API. If benchmarks make a case for it, it would be possible to create a nettcpbinding for the DomainController, but the performance difference would have to be quite high to make the more difficult configuration worth it.

7/15/2013 9:41:19 PM
Notify me when new comments are added to this post
Save comment