Dylan v.d Merwe - 257 - Jun 14, 2014

I have multiple mobile apps (iPhone, Android, WP, Html) across multiple clients as well as the backend ServiceStack services which feed them.

I am at a point with all my clients that I can schedule an upgrade to v4. I’ve asked you before if v3 and v4 can be mixed together and the answer was to test this first - ultimately I would rather upgrade everything in one go. 

My problem now resides with WP8 support. I get that there is no CD in PCL for WP8 which has proven problematic. In all honesty I don’t care about PCL - I just want a DLL (or few) to reference in the mobile projects to enable communication with ServiceStack services. Obviously nuget does not pull the dlls for the WP platform as none exist due to the reasons already explained. So I wanted to go and build my own dll but the ServiceStack.WindowsPhone.sln does not even open properly.

How can I get v4 on WP in order to upgrade my web services and all other mobile clients? Waiting for WP8.1 support is not an option. As you can imagine this upgrade process is quite a process that I need to consider carefully. Ultimately I don’t want to stay on v3 as I have a v4 license.

WP was never supported, it was contributed externally, it also lagged behind other platforms as it always relied on the external community to contribute WP builds to keep it current.

I can’t add support for WP in v4 without detrimenting other platforms and introducing a lot of complexity in the code-base, even that wont enable PCL support for WP. The earliest WP support is WP8.1 which I aim to enable PCL support for.

Note: v4 has never supported WP or ever planned to, the earliest support will be WP 8.1 (ideally as PCL). But you can email team@support.net for a refund.

Dylan v.d Merwe:

Just a thought, would it not be possible to keep WP on v3 while upgrading the others? Would it still be able to communicate with v4 services? I cannot place a wp 8.1 restriction on my apps as it cuts out the vast majority of the user base (as small as it is). I’m not looking for a refund, I’m trying to come up with a solution that allows me to use v4.

There is no WP support in v4. If you want to use Service Clients in WP you will have to use the v3 builds for WP client. The earliest WP version v4 will be able to support will be WP8.1.

Dylan v.d Merwe:

I know you do not want to put your custom ConcurrentDictionary back in just for WP. But surely not supporting a platform that was supported is not a good thing? #ifdef it out for the other platforms like you used to? I hope I did not buy a licence for nothing if I cannot use it…It’s not like I can use v4 elsewhere and leave WP on v3…

Marc-Antoine Latour:


I think that if you project-link your 4.0 DTO project with a project using v3 and then used the v3 client it should work, the project linker plugin should help you on that… Maybe I miss something but it should be ok, even if you decorate your DTO with attribute that don’t exist in v3 you only need to redefined it in your v3 DTO project or add compilation condition…

But maybe I don’t see something…

Anyway, if this don’t work it should be easy to create a custom client that use the datacontractjsonserializer and raw http web request…

Hope this help

Dylan v.d Merwe:

Hi Marc-Antoine

It’s not about project-linking or anything. The WP client (v3) would need to take over the internet (via JSON and it’s routing system) to backend SS services (v4). This would be required as SS v4 does not support WP 8. 

You should be able to use v3 clients with a v4 server as the wire format shouldn’t have changed. The one thing that did is the predefined routes which now use /reply and /oneway instead of /syncreply and /asynconeway which v4 doesn’t accept. You can change to use the new routes with v3 clients by enabling:

client.UseNewPredefinedRoutes = true; 

Dylan v.d Merwe:

Demis that sounds extremely promising! I’ll give it a test this week and let you know :slight_smile: I hate missing out on all the awesome work that is going into v4.