best practice in designing asp.net
The attached drawing describes 2 design options for an asp.net application: The first one is my current design. The GUI calls the DAL which retrieves info from the DB through BL objects. The second design is a famous sample application. The GUI call a façade, which calls the DAL. The DAL retrieves info from the DB, create an object (simple object!), return it back to the façade. The façade is casting the object into typed object (from the business layer) and return it to the GUI. I think of redesign my app so it will be similar to the second option. If you think the second option is good design can you give me scenarios that demonstrate the advantages? I have heard about decoupling but I need a real-life explanation to understand the concept. Final remark: please Ignore the fact that the DAL is creates by Nhibernate. I am not going to do it in the beginning anyway.