Ответ 1
Просмотр моделей DTO?
Может рассматриваться как объект передачи данных между контроллером и представлением.
Должны ли они содержать только простые свойства, такие как Name, AddressLine1, Address City и т.д., или должны содержать сложные свойства, несколько объектов и т.д.
Идеально простые свойства, но также могут собирать другие модели просмотра, но не существует моделей (например, таких как модели EF).
Является ли проверка в модели представления.
Существует два типа логики проверки: проверка бизнеса (например, имя пользователя уже существует), которая входит в сервисный уровень и подтверждение UI (например: имя пользователя), который входит в модель представления.
Могут ли модели просмотра содержать классы POCO, возвращаемые из EF, или я должен использовать AutoMapper?
Нет моделей EF. Представленные модели представляют собой классы POCO с простыми свойствами и другими сложными свойствами, указывающими на другие модели представлений. Они также могут содержать методы для правильного форматирования данных, которые будут представлены в конкретном представлении, для которого предназначены эти модели.
Если вы используете AutoMapper и DTO, являются ли клоны DTO классов POCO?
Не уверен, что я понимаю этот вопрос.
Не могли бы вы отобразить в контроллере, просмотреть модель или на уровне сервиса ниже?
Контроллер.
Для меня служба (службы) - это объекты, которые обращаются к репозиторию (хранилищам), чтобы вернуть объекты POCO из EF. Вот где вся моя бизнес-логика. Как только служба передает объект обратно в хранилище, который сохраняется в EF, они считаются действительными объектами. Правильно ли это?
Да.
Является ли модель домена моделью EF?
Если вы используете первый подход EF Code, тогда да, в противном случае нет (если EF загрязняет домен с помощью специальных атрибутов и классов EF).
В них нет бизнес-логики, они просто используются для переноса объектов между службами (службами) и EF. Это верно?
Да.
Я реализую интерфейсы здесь с общим репозиторием. Затем вы можете расширить общий репозиторий для особых потребностей?
Да, но не слишком увлекайтесь. Обычно репозитории предназначены для операций CRUD. Это службы, которые должны содержать бизнес-логику.
Является ли бизнес-объект равным объекту домена?
Да.
Сколько логики должен содержать объект домена?
Это будет зависеть от объема логики домена, который у вас есть для конкретного проекта, который вы работаете, и от любой существующей логики домена, которую вы могли бы использовать из старых проектов, над которыми вы или кто-то еще работали.
Инъекция зависимостей. Должен ли я использовать это?
Да, абсолютно.
Я понимаю, как это работает, просто не получайте реальную выгоду
Он обеспечивает более слабую связь между различными слоями вашего приложения, что по очереди облегчает unit test и повторное использование в других проектах.
Я думаю, что сообщество выиграет от какой-то вики, в которой содержатся все лучшие практики с образцами кода.
Я согласен.
Есть ли что-то подобное?
Я сомневаюсь.
BTW - я думаю, что StackOverflow нужно немного, "Buy Me A Beer" рядом с флажком "Принять ответ"
Не могу согласиться больше.