I have read the following article from MSDN: http://msdn.microsoft.com/en-us/library/aa581779
It talks about creating a data layer, business logic layer and presentation layer and having naming conventions like getProductsDAL(), getProductsBLL() etc or even separating them into class libraries.
My question is: do developers follow this approach if .NET datasets are not used i.e. if youdo all the logic yourself e.g. have a function called getProducts, which connects to the database using a connection object and then loops through the resultset using an SQLDataReader and displays the results on the page. I am thinking about splitting functions like this into layers.