title: Viewmodels vs Domain models vs entities
body: <p>My API is a rest API, and I feel like I maybe have too much mapping between objects.</p>
  <p>My folder structure is like:</p>
  <pre><code>Api
  Api.ViewModels
  Core.Domain (domain objects with business rules like: username cannot be empty)
  Infrastructure (data access layer / repositories)
  </code></pre>
  <p>My controllers retrieves data directly from <code>Infrastructure</code></p>
  <p>The controllers takes ViewModels as parameters, retrieves data from the repositories and converts them to Domain objects.</p>
  <p>I feel like there is a overhead using ViewModels and Domain. In instead maybe use DTO's and map them from and to entities objects. What do you think? And in that case, how and where should I map them?</p>