title: Passing business entities through layers in multi layer architecture
body: <p>Currently I'm working on a project exploiting multi layer architecture as described in <a href="http://apparch.codeplex.com/" rel="noreferrer">Application Architecture Guide 2.0</a> with 5 layers(DAL, BLL, Facade, Presentation Layer and Common Layer).<br>
  Here we have a Business Logic Layer which consists of Business Components and Business Entities(which are entities generated using an O/R Mapper), regularly we need this entities in our presentation layer for binding and presenting data to the user so we bubble this entities up to the Presentation Layer through other layers.  </p>
  
  <p>Now the question is:<br>
  Is it a right approach? (As I know by definition if we are supposed to share these we should place them in Common Layer so we can use them in all layers).
  Shouldn't we move this entities to common layer? or should we define something like Data Transfer Objects(DTOs) and pass them through the layers(which of course seems redundant).</p>
  
  <p>Any clarification would be appreciated.</p>