Hej,
na potrzeby posta załóżmy poniższą strukturę projektu
- Project.Core
-- Domain
-- Enums
-- Repositories ( kontrakty ) - Project.Infrastructure
-- DAO
-- DTO
-- Migrations
-- Querries
-- Repositories ( implementacje ) - Project.Services
-- Exceptions
-- Middleware
-- Service Classes .... - Project.WebAPI
-- Controllers
Zapewne przesadziłem z Repositories "raczej chyba na pewno" :) winno być jakiś DAL ale nie o to tutaj chodzi.
Moje pytania:
- Czy obiekty dto powinny znaleźć się w warstwie niżej niż przedstawiono?
- Czy kontrakty serwisów powinny znaleźć się w Infrastrukturze (przy założeniu, że w ogóle robimy interfejsy)?
- Czy Serwisy mają operować na obiektach domenowych czy na dto a mapowanie odbywa się w kontrolerach?
na SO m.in. The same Martin Fowler says, that using DTOs between layers is overkill and make things too complicated. Why don't you simply use domain models and delegate the mapping to DTOs to the controller? Basically, is the only component that really uses DTOs as response model - Gdzie umieścić np. AutoMapper klasę mapującą?