I'm faced with this question, and was also asked about it. Here are three articles from Ms that show different sides of the same story:
Recommendations for Data Access Strategies
This one explains in detail how to store the data before moving it somewhere.
Designing Data Tier Components and Passing Data Through Tiers
Learn how to best expose your data to Microsoft .NET applications and how to implement an effective strategy for passing data between the tiers in a distributed application. (65 printed pages).
Design and Implementation Guidelines for Web Clients
Just like it reads, a good place to start for asp.net apps design