asp.net mvc против клиентских веб-форм - PullRequest
2 голосов
/ 06 мая 2011

При недавнем проектировании веб-приложения среднего и крупного размера я решил пойти на реализацию клиентских веб-форм, а не asp.net MVC для уровня пользовательского интерфейса.

Причина в том, что с веб-формами легко быстро разбить экраны и склеить веб-приложение (я широко использую Radcontrols Telerik, поскольку у них богатая модель клиента). Я обнаружил, что чем раньше я получу прототип пользовательского интерфейса перед клиентом, тем быстрее они смогут взглянуть на него и превратить его в то, что они действительно хотят.

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

То, как я это вижу, я могу получить свой торт и съесть его! Я могу использовать молниеносные веб-службы JSON для критических областей производительности моего приложения, но я могу вернуться к модели обратной / частичной обратной передачи для сложных областей пользовательского интерфейса. В общем, меньше времени на разработку и производительность, где это важно.

Итак, наконец, вопрос!

Я не пытаюсь сопротивляться MVC, просто спрашиваю, лучше ли это, чем я делаю выше, и если да, то почему?

Ответы [ 3 ]

2 голосов
/ 06 мая 2011

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

Лично я считаю, что у MVC есть некоторая кривая обучения для тех, кто привык иметь перетаскивание.бросить дизайнер, а не редактировать HTML вручную.Тем не менее, как только вы пройдете через это, я не верю, что вы когда-нибудь снова будете использовать веб-формы.Есть много элементов управления, которые прекрасно работают с MVC. Расширения Telerik MVC - это только один пример, который также является открытым исходным кодом.

1 голос
/ 06 мая 2011

В некоторых случаях вы откатываетесь к постбеку страниц, это означает, что вы фактически поддерживаете две разные модели.Один на стороне клиента и один на стороне сервера.В случае обратной отправки вы вносите изменения на стороне сервера, и теперь вам нужно найти способ сообщить об этих изменениях на стороне клиента.Я не знаю, как вы это делаете, но это не совсем масштабируемо, потому что каждое изменение должно синхронизироваться между клиентской и серверной сторонами.В MVC мы заботимся об этом, используя серверные модели просмотра, которые автоматически обрабатываются на стороне клиента платформой.(Вверху мы используем клиентские библиотеки связывания, такие как Knockoutjs, которые гораздо проще использовать с MVC, чем веб-формы)

Во-вторых, вы не получаете преимуществ маршрутизации и в веб-формах.Таким образом, вы маршруты все еще выглядят те уродливые Mysite.com/mypage.aspx.

0 голосов
/ 07 декабря 2013

У меня есть приложение по недвижимости здесь: www.homevana.com. Это приложение для веб-форм, но держу пари, что вы об этом не узнаете. С точки зрения требований этого проекта, клиентское приложение, которое все еще использовало веб-формы во времена, когда требовалось заполнить большие сложные формы для сбора данных о доме для продажи, было приятным местом. Таким образом, большинство страниц .aspx в приложении Homevana не имеют кода, но когда есть формы со сложной проверкой, я использовал страницы .aspx с серверными элементами управления и набором проверок Питера Блума: http://www.peterblum.com/Home.aspx (конечно, вся сложная проверка на стороне клиента) быстро выполнить этот аспект работы.

Пакет FriendlyUrl, который вы можете установить с помощью nuget: http://www.hanselman.com/blog/IntroducingASPNETFriendlyUrlsCleanerURLsEasierRoutingAndMobileViewsForASPNETWebForms.aspx, легко избавляется от этого «уродливого» расширения .aspx, хотя вы можете сделать это и с одним правилом маршрутизации URL-адресов в IIS7.

Это все о правильном инструменте для работы. MVC великолепен, и у меня есть много других проектов, где я использую MVC, но это не всегда лучший инструмент для требований проекта.

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