title: Service layer and project structure in ASP.NET MVC 5 without repository and UoW patterns
body: <p>I'd like to create a good app in ASP.NET MVC 5 using EF 6 Code first concept. I want it to be well-designed i.e. having generally speaking: Presentation, Logic and Data layers separated. I want it to be testable :)</p>
  
  <p>Here's my idea and some issues related with creating application</p>
  
  <p><strong>Presentation layer</strong>: It's my whole MVC - view models(not models), views, controllers
  I believe that's validation should be done somewhere else (in my opinion - it's a part of business logic) but it's quite convenient to use attributes from the DataAnnotations namespace in ViewModelds and check validation in controller.</p>
  
  <p><strong>Logic layer</strong>: Services - classes with their interfaces to rule business logic.
  I put there functions like: AddNewPerson(PersonViewModel Person), SendMessageToPerson(...). 
  They will use DB context to make their actions (there's a chance that not all of them will be relying on context). There's a direct connection between service and db - I mean the service class have reference do context. 
  Where should I do mapping between ViewModel and Model? I've heard that service is a bad place for it - so maybe in controllers. I've heard that service should do the work related with db exclusively. 
  Is it right? Is my picture of service layer is good?</p>
  
  <p><strong>Data layer</strong>: I've read about Repository and UoW patterns a lot. There're some articles which suggest that EF6 implements these two things. I don't want to create extra code if there's no need for such a behavior. The question is: am i right to assume that i don't need them?</p>
  
  <p>Here's my flow:</p>
  
  <p>View&lt;->Controllers(using ViewModels)&lt;->Services(using Models)&lt;->DB.</p>
  
  <p>**I'm gonna use DI in my project. </p>
  
  <p>What do you think about my project structure?</p>