>a DataReader (for Web applications) or a DataTable (for WinForm apps)...
You've framed the issue badly. Both WinForms and WebForms can use either DataReader or DataTable/DataSet. The question of which to use should be based on how you'll use the data, and not what type of presentation layer you'll have.
DataReader - always the best for "read only" unless you databind. It's possible to databind a readonly control to a datareader, but this isn't too common.
DataTable/DataSet - always the best for updating data, and for 2-way databinding
A third option you didn't mention is especially friendly to middle tier Business Logic Layers: Custom Collections. These are in-memory strongly typed containers of data that is very specific in purpose.
With all the noise about ASP.NET 2.0, a lot of people didn't realize that Windows Forms 2.0 also got some cool new features. The biggest addition is in Data Binding. Windows Forms can now support what I call automatic binding of UI elements to custom collections. This makes it much easier to design Windows programs because you can wire the controls to middle tier collection classes. It works better than ASP.NET because you don't have a limited page cycle that makes you re-bind constantly. You might like this book:
http://www.amazon.com/gp/product/032...lance&n=283155
This article is also good:
http://msdn.microsoft.com/msdnmag/issues/02/02/cutting/
You might also like Petzold's book on Windows Forms 2005, but I personally don't care for his style of not using Visual Studio to it's full potential. He's a bright man, but he doen't make a lot of real-world GUIs (his GUI designs tend to be rather odd in terms of usability), and he seems to prefer a tool I'd call "Visual Notepad" :-)
Windows Forms could always bind to custom collections that implement the proper interface, such as IList. But now databinding on Windows Forms has been taken to the next level, where is automatically binds to "Changed" events in controls.
You can also get my powerpoint slides and sample code that explain collections on .NET 1.1. I haven't updated it for 2.0 yet (generics), but the 1.1 basics are still applicable to 2.0.
http://www.ericengler.com/downloads/collectiondemos.zip
Eric