MVC Business Logic + DAL + Mapping ViewModel с моделью EF - PullRequest
0 голосов
/ 31 мая 2018

Я начинаю разрабатывать приложение и хочу ознакомиться с лучшими практиками по организации архитектуры решения.

  1. Должен ли я использовать EF Class Model в качестве моей модели представления?
  2. Должен ли я поместить все свои запросы и доступ к БД в модель?или создать Службу для управления всеми проблемами с БД?

Я использую EF с БД Сначала, потому что БД уже разработана.

Спасибо!

1 Ответ

0 голосов
/ 01 июня 2018

Существует гораздо более полное описание архитектуры приложений, но вот описание за $ .25.

  1. Модели классов EF предназначены для связи с хранилищем данных
  2. ДанныеTransfer Object (DTO) - это то, как модули взаимодействуют между собой (WebAPI с MVC и т. Д.)
  3. ViewModels предоставляют данные, необходимые для вашего пользовательского интерфейса

Поищите разделение проблемотносится к архитектуре приложения, это может сохранить ваш приклад.Зачастую разработчики используют двойное назначение этих объектов, что приводит к каким-то веселым результатам, когда вы обнаружите, что нарисовали для себя угол.Не так уж смешно, если вы «художник».

С другой стороны, сохранение этих моделей требует дополнительных усилий, а сопоставления занимают циклы ЦП.Вот конкретный пример:

WebAPI обращается к объекту People (класс EF) и сопоставляется с PeopleDTO (не все поля, может быть дополнительная информация) и возвращает его на контроллер MVC.Контроллер MVC берет PeopleDTO и объединяет его с вспомогательными таблицами поиска (больше вызовов WebAPI) для создания PeopleVM (ViewModel), который используется вашей страницей Razor.

В только что описанном сценарии есть три различных типаобъекта People, но каждый из них может иметь очень разное содержимое в зависимости от потребностей этого «слоя».Существует множество инструментов, позволяющих сделать отображение менее болезненным.

Очистить?

...