I\'m working on a project where I\'ll need to serialize some data in a java 6 app and deserialize it a c# 2.0 app. Is there a strategy or something already in existence I c
Protocol buffers would be a good option here. On the C# side, I would recommend Jon Skeet's dotnet-protobufs for this use-case, since it has the same API on both sides (his C# version is a port of the Google Java version, part of the core distribution). If you want the C# to be more "typical .NET", then protobuf-net may help.
(the wire format is obviously identical between versions; the API may vary)
Small, fast, efficient, portable.
For info, I know that protobuf-net has .NET 2.0 support; I honestly haven't tried this on Jon's version, but I expect it would - there isn't much that you need 3.0/3.5 for in protobuf.
Google's Protocol Buffers is something that you could look into. You will need to check into the state of the usability of the C# implementation, but in all other respects, I think that it meets your needs.
You could try Hessian:
http://hessian.caucho.com/index.xtp
It's binary, and supports Java, C++, and several other languages. I've never used it myself, but came across it, thought it was interesting, and bookmarked it...