Здравствуйте! Помогите разобраться с инверсией зависимости, есть приложение со слоями: DataEntities,DAL,BLL,UI, в слое DAL используется EF и в качестве БД MSSQL, подскажите нужно ли здесь использовать инверсию зависимостей, видел разные примеры, с похожей архитектурой, только там использовалась инверсия зависимостей и каждый слой кроме UI был окружен интерфейсами, вопрос зачем окружать слой DAL интерфейсами, если там БД не поменяется, зачем окружать слой BLL ? Получается только для того чтобы тестировать через Moc объекты???
Дмитрий: А. Формально аттрибуты тут лишние, поэтому нужно создать другой класс.
Тем же t4 можно сгенерировать DTO.
Для маппинга можно маппер использовать или так же генератор.
>>из SOLIDа только применяется принцип единственной ответствености)
Можно и так жить =)
Если нет жестких требований к производительности,не вижу причин не следовать всем принципам, кроме лени.
А если все-таки поменяется СУБД? А если EF под нагрузкой начнет тормозить? А если вы решите прикручивать какой-нибудь эластик?
С помощью IoC вы сможете локализовать все изменения до отдельной точки реализации, в противном случае - придется перепиливать куда больше. И да, это вы еще и не протестируете.