title: What is the efficient layered architecture for MVC project?
body: <p>I'm going to start a new project which has the architecture below:</p>
  
  <ol>
  <li>Entities (only entities like Customer) - Class Library</li>
  <li>BLL (Business logics for Customer - models) - Class Library</li>
  <li>DAL (SQL calls from this layer) - Class Library</li>
  <li>CommonUtilities (Enums, common functions) - Class Library</li>
  <li>MVC Web project - has views &amp; controllers - Web project</li>
  </ol>
  
  <p>Question 1: Is it a good practice to use this architecture? or should I improve 
  something more to it? </p>
  
  <p>Question 2: What is Web API and should I use it as a separate layer too?</p>
  
  <p>Please let me know if you have better architecture for code maintainability.</p>