Actually this is very depending on your needs and design. Sometimes I will use dataset because I may need to do some manimulation on the data before it's present to the user, and this data doesn't need to update back to database.
Use of store procedure can retrieve data faster but I think it is database dependent. I will use view but not store procedure to achieve database independent.
Finally, I won't use stored proced + dataset because it create additional process to retreive the data.