Question: Imagine an abstract problem. 

There is a client (`C`) that interacts to a server(`S`). They changes a date variable(`d`).

A server can be French or English, the client too. 

A date sent by a French client ("31/12/2011") to an English Server("12/31/2011") can't recognize it. And viceversa. 

How to avoid such a problem in .NET.

Answer: 
Are you in control of both the client and the server? If so, just agree on a format and culture - I'd suggest the invariant culture - and explicitly make sure that both sides adhere to it.

You can very easily parse and format in .NET using the invariant culture - look for `ToString` and `Parse`/`TryParse` overloads which include an `IFormatProvider` parameter.
Send it between the client and server using the Ticks property. That's a number and will always be the same no matter what you want to format the date as.