We are currently using Ajax calls to a .net web service that then returns a Json object to the client. Some of these Json objects are pretty massive (> 500k uncompressed). We have heard some good things about Google Protocol Buffers and have been experimenting.
So far, we have had pretty good luck serializing on the server with what seems to be the most common .net version - "protobuf-net". We have not had much luck deserializing on the client. We tried using what seems to be the one and only javascript deserializer protobuf.js. We found that it is not easy to use, there are very few examples or documentation, and it does not seem to handle datatypes beyond strings and ints.
It would seems that at this point, there would be a proven, well defined solution for binary data serialization/deserialization between .net and a web client. Maybe we are missing something obvious.
Our requirements are Ajax calls from the client, and .net web services methods on the server (.asmx or WCF).
Any comments and suggestions are appreciated.