What is a strongly typed object? :) It is essentially what is perceived as being of the types it anticipates. You can do that only if you have a way to control the server and the client ends of the pipe (i.e. same VMs on both ends, or same languages or proxy/stubs that can marshal/unmarshal to the respective languages).
So, what does that mean? I recommend using WCF with XML/JSON since that is the lingua franca for communication over the wire. You will get over not having strong types once you realize the benefits of weak types over the wire. If you really want strong types, you can use xsd.exe or something similar to generate the proxy for your services.
All that said, it really behooves you to separate the effort to two things:
- Implement domain services using WCF to wrap your backend. These can be just .NET assemblies exposing a contract to the wire protocol services.
- Implement wire services using something that would be friendly to end consumers. Try to make this a trivial effort so that you can create them quickly and cheaply. Something like vert.x or node.js or WebAPI..
Of course, you might already be doing all this and I might be completely wrong. :)