I think the biggest problem with sending DataSets through the wire, assuming that you "own" both ends, is the pure "weight" that the DataSet carries - with its interoperability, etc., this is much more than transport data. A simple collection of objects should be much easier.
If you donโt โownโ both ends or can use other clients using your service, then the DataSet is a nightmare of interaction.
If you do not care about all these problems, and you feel that collecting objects is too โworkingโ (for example, if you are just going to transfer it back to the DataSet on the other end), then whatโs your call.
Here is a good article about here .