Kevin,
At first I didn't reply to your question because I didn't really know what the terms "remoting' and 'marshalling' actually meant. I still am unclear about it, but I thought I'd reply anyway.
As I've mentioned before, we are doing things basically the same way that you are, although we're not passing DataSets through our WebServices ... we serialize the DataSets into XML to pass to and from the WebService. The WebService handles this before and after it calls the Biz Layer on the backend, which sends DataSets. Sending DataSets vs sending an XML string is slightly different ... you mentioned that it's still "XML under the hood" and that's partially true. But sending a DataSet from a WebService still sends an object and is not always easily readable by other than a .NET client. That's why we've serialized it to an XML string, so other clients can utilize the WebServices. I recommend doing it this way unless you are 150% sure that no other client other than a .NET client will ever need to access that WebService.
So, whether or not this is best practice or not, I don't know. I didn't dream this stuff up, so I'm guessing it's probably a good way to do it. <g>
What exactly is this remoting and marshalling stuff all about anyway?
~~Bonnie
>This is a follow-up to a question I asked about a week ago (where Bonnie gave me some good answers).
>
>We're building a .NET app using Winforms for remote users, a Web Service, a middle-tier layer, and SQL Server. The UI is very 'rich', and we pass datasets back and forth to the Web Service [which passes them on to the appropriate middle-tier function]. The datasets that we pass 'up' contain 'packaged' information on user selections for reports, data that users have added/changed [for INSERTS/UPDATES], etc. The datasets that get passed 'down' are usually formatted results of queries [for user grids, lists, or reports that are run at the remote end].
>
>So the remote end [presentation layer] passes datasets up, and receives datasets down.
>
>We've been told to look at .NET 'remoting' and 'marshalling'. It's been suggested that this is faster and more efficient than sending and receiving datasets. I haven't been able to find much relevant information. Admittedly, I always thought that when the remote end sends a dataset to the Web Service [and then receives one back], it's essentially XML 'under the hood'.
>
>Any thoughts/recommendations? Are we currently doing it along the lines of 'best practices', or is .NET remoting a better idea [and how could it apply to our situation]?
>
>Thanks,
>Kevin