title: Data Access Layer returning BusinessObjects
body: <p>Currently I'm researching the best design pattern to implement for a windows form application using VS2010 in VB.</p>
  
  <p>I'm getting a bit confused with some design patterns. I understand that the DAL should return objects and not datareaders, datasets etc. but... if I have two functions in my DAL: GetProductById &amp; GetAllProducts</p>
  
  <p>These two functions would return a Product object and a collection of Product objects respectivley. Would Product not be a BOL object? </p>
  
  <p>If I add CRUD into this object then it can no longer belong to the BOL do you have two versions of the object, one for DAL &amp; one for BLL without the database methods?</p>
  
  <p>I know there are similar posts on here but they have only served to confuse me further, is it possible someone could just explain in simple terms how DAL objects interact and differ from BOL objects.</p>
  
  <p>Thanks.</p>