1. Convert the dataset into a byte using the Binary Formatter. Compress this byte using the Deflate classes in .NET. On the client side, the reverse process needs to be done.
Peter Bromberg has written a nice article explaining the details of this strategy.
2. Convert the dataset into a XML string and compress the XML string. This discussion forum thread contains sample source code for the same.