Как серверные элементы управления нарушают шаблон проектирования MVC? - PullRequest
5 голосов
/ 12 сентября 2010

Причина, по которой я спрашиваю, - это (первый) комментарий tvanfosson к его ответу на другой мой вопрос , где он сказал (о ASP.NET MVC): к внутреннему разделению интересов, которое делает MVC хорошим шаблоном развития .. ".
Я, конечно, знаю серверные элементы управления ASP.NET, и мне кажется, что я знаю шаблон проектирования MVC, но я не понимаю, как серверные элементы управления нарушают MVC.

Спасибо.

Ответы [ 2 ]

1 голос
/ 12 сентября 2010

Я думаю, что это во многом связано с моделью postback + viewstate + events.

Вышеуказанное неявно происходит для имитации модели, в которой пользователь взаимодействует с приложением в несколько этапов, когда существуют различные состояния системы. Поскольку каждый элемент управления содержит свой viewState, каждый из них вносит свой вклад в это общее состояние, которому может стать трудно следить по мере усложнения страницы. Я также считаю, что удобство поощряет указанную сложность.

Вышесказанное может быть скорее аргументом для restful, что способствует большей зависимости от способа ведения протокола. Использование сообщений для достижения вышеизложенного на самом деле не предусмотрено протоколом HTTP. Просто возьмите оригинальную встроенную разбивку на страницы сетки asp.net, так как она была основана на постбэках, которые поисковые системы игнорировали за пределами страницы 1. Кроме того, у вас больше не было доступа к указанной странице информации только по URL.

imho шаблон MVC в контексте asp.net MVC - это больше о простых операциях запрос / ответ. Вы можете сделать его настолько сложным, насколько вам нужно, но это способствует более простому операционному способу выполнения действий. Он не основан на работе с состоянием, основанным на нескольких разных битах информации, разбросанных по странице / представлению, как в классическом; но если это то, что вам нужно, вы все равно можете достичь этого, но вам придется быть намного более откровенным при этом.

0 голосов
/ 16 сентября 2010

Нашел ответ по "Pro ASP.NET MVC 2 Framework" Стивена Сандерсона (стр. 5)

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

...