Можно ли доверять проверке MVC? - PullRequest
2 голосов
/ 10 октября 2010

Я пытаюсь избежать дублирования проверки и хочу узнать, можно ли доверять проверке аннотации данных MVC как «проверку на стороне сервера».

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

Должен ли я игнорировать аннотации данных все вместе и сделать так, чтобы мой бизнес-уровень выполнял всю проверку на стороне сервера, которую я затем мог бы передать пользовательскому интерфейсу?

Ответы [ 2 ]

1 голос
/ 10 октября 2010

Я бы сказал, что это зависит от того, что вы подразумеваете под "бизнес-уровнем".Если это логически разделенный код, выполняющийся в том же процессе, то я полагаю, что вы можете доверять проверке, выполняемой на уровне представления (если это проверка на стороне сервера).

Однако, если бизнес-уровеньвозможно, абстрагируясь за какой-либо службой или по какой-либо причине, работающей как отдельный процесс или на отдельном сервере, я бы укрепил это разделение, рассматривая уровень представления как клиент и повторно проверяя на бизнес-уровне.(Идея заключается в том, что такое разделение обычно выполняется, когда целью является совместное использование этого бизнес-уровня несколькими клиентами, возможно, написанными несколькими разработчиками. Поэтому вам следует относиться к ним так же, как к любому доступу клиент-сервер.)

По сути, каждый раз, когда одно «приложение» получает ввод, проверяйте его.Если это происходит из браузера конечного пользователя, проверьте его.(Проверка на стороне клиента на самом деле не «проверка», а скорее хорошая функция для улучшения пользовательского интерфейса и уменьшения нагрузки на ресурсы сервера.) Если это происходит из другого внутреннего приложения, проверьте его.

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

1 голос
/ 10 октября 2010

Это проверка на стороне клиента , которой нельзя доверять - это означает javascript. Ваш код MVC в порядке (если проверка выполняется в C #, это, безусловно, на стороне сервера), и результаты вашей проверки можно доверять. Хотите ли вы также выполнить проверку на бизнес-уровне, решать только вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...