To keep my data payloads as agnostic as possible I want to use objects and arrays or objects (the objects are just containers for a bunch of primitive type ie: Customer. Store. etc)
Does this make sense?
I don’t want to use something datasets which aren’t as portable, make sense?
What is the typical model most asp.netters are using today?
Yes what you are stating makes sense. Objects and Arrays are the most portable types so your code can be used from multiple different languages easily (well usually). I agree with your statement about datasets. Even if you are using a language currently that handles datasets there is no knowing how you might need to consume them in the future.
Are you talking about using ASMX web services or WCF ones?
For WCF here are some good link to Best Practices:
MSDN – Guidelines and Best Practices
MSDN – Best Practices for Security in WCF
Patterns and Practices – Web Service Software Factory