title: Entities in shared layer (cross cutting concern) in a layered application?
body: <p>In a layered application, is it good practice to have you entities defined in a shared layer? I figure that I will be using them across all layers. Or do they belong in the business layer? </p>
  
  <p><a href="http://msdn.microsoft.com/en-us/library/ee658109.aspx" rel="nofollow">MSDN's layered application guideline</a> puts the business entities in the business layer</p>
  
  <p>The <a href="http://layersample.codeplex.com/" rel="nofollow">Layered Architecture Sample for .NET</a> puts the entities in the shared layer</p>
  
  <p>Can it be like this?</p>
  
  <ul>
  <li>Presentation </li>
  <li>Business</li>
  <li>Data</li>
  <li>Shared
  <ul>
  <li>Entities</li>
  </ul></li>
  </ul>
  
  <p>Or must it be like this</p>
  
  <ul>
  <li>Presentation </li>
  <li>Business
  <ul>
  <li>Entities</li>
  </ul></li>
  <li>Data</li>
  <li>Shared</li>
  </ul>
  
  <p>What to do and why?</p>