>Business objects are okay if a design time you know the structure of your data tables and they are not going to change and you bring back teh same structure every time nor be too complex. If you build your queries at runtime and change you number of joins, selected columns, filters etc.. or using updatable views you are better off using datasets.
My understanding is that if you use DataSets, the preference is to use a Strongly-Typed DataSet which would set your structure in stone similar to a business object. Also, my business objects are fairly complex so I'm not sure what you meant by that statement.