Проверка в n-уровневых приложениях mpc asp.net - PullRequest
2 голосов
/ 31 декабря 2010

Я ищу некоторую практическую / теоретическую информацию относительно лучших практик для валидации в приложениях mpc asp.net mvc.

Я работаю над приложением .Net, разделенным на следующие уровни:

Пользовательский интерфейс -> Mvc3

Уровень BLL -> все бизнес-правила.Отделен от уровней доступа к данным и пользовательского интерфейса через интерфейсы

Уровень DAL -> Доступ к данным с помощью шаблона репозитория, EF4 и pocos

Теперь я ищу хороший, чистый и прозрачный способ указатьмои правила проверки.Вот некоторые соображения по этому вопросу:

Проверка пользовательского интерфейса должна отвечать только за ввод пользователя и его достоверность.Проверка BLL должна обрабатывать достоверность данных, относящихся к бизнес-правилам приложения.

Моя главная задача - как наиболее эффективно связать проверку BLL и пользовательского интерфейса.Я думаю, что мне хотелось бы избежать проверки наличия пользовательского интерфейса в коллекции проверок и добавления ошибок в ModelState вручную.Кроме того, я не хочу передавать ModelState в BLL, который будет там заполнен.

Буду признателен за любые мысли по этому вопросу.

PS Следует ли этот вопрос пометить как обсуждение?

1 Ответ

2 голосов
/ 01 января 2011

Ваш слой BLL может возвращать ошибки проверки в некоторой стандартной форме, такой как, например, Dictionary<string, string> или некоторый другой пользовательский тип. Контроллер получает модель представления из представления, поэтому проверка по этой модели представления вызывается механизмом связывания модели по умолчанию. Если эта проверка пройдёт дальше, появятся бизнес-правила. Модель представления сопоставляется с моделью и передается на уровень обслуживания. В случае бизнес-ошибок служба вернет набор ошибок, которые могут быть вставлены в ModelState с контроллера с использованием метода расширения на контроллере.

...