DataSets are very heavy, and to be honest this book doesnt always give the best representation of what to send back, as there are inconsistencies. If for instance your return one record, why do you want to return a dataSet with all its overhead for that?? you would return a custom object which is light weight and easy to consume via your presentation layer. The same can be said with collections of objects. If you dont need to use the features of the dataSet why use that, why not use just a dataTable or a custom collection of objects.