title: Why should I use view models?
body: <p>I'm new to developing web apps using ASP.NET MVC. In fact, I'm rather new to developing web apps, regardless of technology.</p>
  
  <p>Currently, I'm working on a project just to get to know the ASP.NET MVC framework better. When reading on SO and elsewhere on the internet, the consensus seems to be that the views should never deal directly with the business objects (i.e. objects implementing business logic and containing associated attributes). Instead, view models should be used. However, this introduces a couple of issues:</p>
  
  <ul>
  <li>Where do I put my validation code?</li>
  <li>I need to add code to map between business objects and view models.</li>
  </ul>
  
  <p>In fact, it seems rather cumbersome and I haven't really seen anyone explaining properly why it's a bad idea passing business objects to the views. Could someone please try to explain this (or point to a good explanation)?</p>
  
  <p><strong>Just a clarification</strong>; I'm not looking for examples on how to handle the two issues with view models above but simply an explanation on why I should use view models at all.</p>