My co-worker, Rob Teixeira, MVP (he makes me put those three characters --"MVP-- in if I'm going to quote him), sent me a nice little tidbit today in email. It's a performance assessment (I won't call it a test) of the Enterprise Services vs. TCP Remoting vs. XML Web Services. The Article is here. The article does not describe the results of a perfect performance test, but it attempts to try to give developers an assessment of what technology does a better job in the performance category in certain situations.
The article itself is a little confusing, but there is a nice little discussion of DataSets after the "Figure 6. Retrieving the Northwind product catalog as a DataSet" graph. Rob quoted a line from the article, but (since this is my blog) I like this quote even better: "It's clear from the results of this test that returning DataSets from service to caller decreases performance significantly—by around 75% for the binary transports!"
I'm a lazy coder which is why I use business object. I don't want to have to go back and redesign my app that was using DataSets because a new requirement that specifies that I have to retrieve data from a Service instead of directly from the database. And I'm still lazy in this in that I generate the business objects direct from the Database.