Прочитав несколько статей, размещенных здесь, я получаю несогласованную информацию о том, как правильно настроить проект.Настройка проекта MVC на уровне предприятия. Что ожидается?
Я ищу советы о том, как профессионалы делают это на уровне предприятия.
Я вижу разные школы, хотя об этом, некоторые люди разрабатывают по-настоящему способ N-уровня, другие предпочитают использовать EF Code First непосредственно в приложении MVC и имеют модели FAT и имеют одно большое приложение MVC с логическое разделение проблем и т. д.
Итак, для проекта среднего размера это моя настройка, и я хочу попросить ваше мнение об этом.
MVC приложение
Модель - Здесь мои модели имеют только то, что нужно просматривать, логика проверки и т.д. Эти модели предназначены для передачи данных между контроллером и только видом.
Контроллеры. Вызовите сервисный уровень, в котором живет бизнес-логика, и при необходимости вернет модели домена. Преобразует модели домена в модели просмотра и наоборот.
Сервис слой
Это были бизнес (домен) логика жизни. Сервисный уровень также отвечает за связь с уровнем данных для выполнения операций CRUD. Сервисный уровень возвращает модели домена контроллеру в приложении MVC, а также ожидает, что модели домена будут вызваны.
хранилища данных слоя
Уровень данных представляет собой тонкую оболочку вокруг EF и выполняет операции CRUD. обычно у меня будет подход Code First, в котором модели объектов для меня создаются EF. Я конвертирую первые модели кода EF в модели домена и возвращаю их на сервисный уровень. Слой данных также ожидают модели домена со служебного уровня, которые, в свою очередь, конвертируют в первые модели кода EF и сохраняются в БД.
домена Модель слой
Эти модели предметной области, которые используются и общие кап приложений слоев.
Какой лучший дизайн? Что ожидается на уровне предприятия?
Hi Chris; Таким образом, вы в основном избавитесь от уровня модели домена и добавите EF на уровень обслуживания и используете EF Code. Сначала сгенерированные классы в качестве вашей модели домена? – IGIT
Согласен. Шаблоны, такие как MVC, должны быть вдохновением или руководством, а не рецептом. Делайте только то, что необходимо для обеспечения и поддержания ценности. Все остальное - это отходы. Обычно полезен прагматичный подход. –
Абстракция для абстракции - это анти-шаблон: удалите обертку репозитория, если она не поставляет чистое значение (воспринимаемые ценности - сложности и т. Д.). –