The first part in this series discussed various interoperability issues with DataSets. This time I want to discuss the performance implications.
Let us sent the simplest DataSet to some server:
Here is the generated Soap:
This Soap commits two “crimes”. The first one is the embedded schema. Since the wsdl is not typed, .Net must serialize the schema inside the soap. This can have serios performance implications with large schemas.
The second issue is the rowOrder and hasChanges attributes over each data row. In most cases when you just want to pass a snapshot of data to a client so these are simply not required.
The overall result is a bloated Soap without any meaningful benefit.