General Advice Requested: Most efficient way to setup a 3-tiered system
In the past I manually coded business objects which usually consist of various internal variables accessed (and manipulated) by public properties. Then I manually created a set of classes I could pass or request my business objects to or from. Then as I write my code, I make calls to the business and data layers I setup.
Ultimately I ended up learning to use tools like Codesmith to automate generating my business objects from database tables and then generating the datalayer for that business object.
I'm starting my first project in VS2005, and I've begun playing with generating typed datasets (which seem similar to my custom business objects), but my immediate concern is that if I do what seems natural as far as the GUI goes, then it seems like my code gets spread throughout my application and I have little hope of maintaining it in the future. Plus, I got stuck trying to work with the selected item from a listbox after it was bound to a bindingsource. :(
Is there a good book or online guide that focuses on how to get the most out of VS in terms of working with a more advanced project?

