Good Morning,

I have read books and papers on object-oriented development and have been
programming in VB 4 to 6. In VB 6 I created distributed applications by
following the Windows DNA architecture--Emissaries and Executants along with
Interface-based programming techniques. I enjoyed programming this way,
but some things just didn't feel right.

I am just now learning .NET for Visual Basic and now that there is a new
programming model, I was wanting to get advice from the users that have been
developing in this new language.

I am devloping a Middle Tier(Business Layer) Component that will be used
by Win32 Applications as well as Web Forms. The Component will contain objects
such as product, client, site, etc.

Is it best for an object to know how to populate and save itself?

What if the object is in a collection, should the collection have a Builder
Pattern to populate the children?

Should the business rules be contained in the objects or should the rules
be in another class to keep the base objects lite?

Should an ADO.NET DataSet be used for loading, modifying, and adding object
data and then updating the database, or should the objects communicate directly
with the database?

Wondering if someone had opinions or suggestions,
Matt Brook