Лучшие веб-формы, вдохновленные asp.net MVC - PullRequest
5 голосов
/ 07 августа 2009

Я работаю над приложениями asp.net "на месте" и хотел бы использовать asp.net mvc, но не могу, поскольку наши приложения развернуты на веб-серверах, которые не находятся под нашим контролем и в настоящее время имеют только .net Framework v2 и IIS6. А также нет возможности тратить время / деньги на конвертацию текущих приложений WebForms ...

Так что любая информация, которая поможет мне создать лучшие приложения для WebForms asp.net, будет принята с благодарностью ... Я прочитал список "что отстой" о WebForms от людей из MVC, для которых, безусловно, есть решения / обходные пути для сделать WebForms "менее отстойными" ...

вещи, которые я вроде как понимаю, которые можно улучшить (но мне нужна помощь):

  • удалить viewstate для страниц, которые не отправляют (удалить тег runat = "server"?)
  • свести к минимуму использование viewstate - используя <span><asp:literal /></span> вместо asp: label (мы никогда не используем свойства стиля серверных элементов управления, но используем атрибут CssClass главным образом для сохранения CSS в файлах CSS)
  • использовать обработчики ashx для ajax-запросов (может ли это быть дальше - например, обратная передача в обработчик?)
  • можно ли полностью удалить viewstate и все еще отправить обратно? (это чтение переменных формы вместо чтения контрольных значений?)
  • Вы можете программно отключить режим просмотра, если знаете, что у пользователя есть javascript? например тогда запрос AJAX может отправить форму, но будет работать, если JavaScript отключен?
  • мы уже храним всю нашу бизнес-логику на уровне BR / BL, и у нас есть аналогичный уровень DAL для доступа к базе данных ... так что код aspx обычно довольно легкий ... (проверка также в BR / BL, что для ответа на ajax-запрос или постбэк для той же задачи требуется небольшое (или нет) дублирование кода)
  • использование меньшего количества компонентов ... (меньшее количество серверных элементов управления ... в некоторой степени это также означает использование элементов управления, которые не будут иметь идентификаторов хрени)

меня не особо заботят аккуратно отформатированные URL-адреса, так как они основаны на интрасети (и в значительной степени не имеют значения), а SEO не имеет значения ... хотя URL-адреса MVC выглядят блестяще ...

Опять же, любая помощь, ресурсы, примеры кода или что-то еще было бы здорово! спасибо, куча.

Ответы [ 3 ]

3 голосов
/ 07 августа 2009

Можно добавить к этому

использовать обработчики ashx для запросов ajax

Используйте Jayrock для обработки запросов Ajax. Это очень похоже на MVC только с JsonResult.

Можете ли вы отключить режим просмотра программно, если вы знаете пользователя имеет JavaScript

Вы можете определить, включен ли JS, используя этот подход . Таким образом довольно легко отключить ViewState. Может быть легко обработано на базовой странице, если она у вас есть. Так что количество повторяющегося кода -> 0.

Дополнительно вы можете найти WebFormsMVP полезными.

1 голос
/ 07 августа 2009

Для вопросов ViewState убедитесь, что вы понимаете разницу между ViewState и ControlState. Эти статьи помогли мне в этом. Я отключаю ViewState в web.config для своих существующих приложений Webforms, и у меня нет никаких проблем. Я также избегаю каких-либо элементов управления * View и придерживаюсь в основном PlaceHolder, Literal, Repeater, Button, TextBox, DropDownList (может действовать странно без ViewState, но ничего не показывает) и других основных элементов управления. Вы можете отправить обратно с выключенным ViewState.

ASHX отлично работает для запросов Ajax. Я бы не пошел дальше, чем это.

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

0 голосов
/ 13 августа 2009

Думаю, я бы добавил к этому сообщению (для случая, когда кто-то сталкивался с ним) следующую ссылку, которая весьма полезна при использовании jQuery (или в этом отношении javascript):

из блога Рича Страла: Сериализация форм jQuery без ASP.NET ViewState:
http://www.west -wind.com / блог / сообщений / 472329.aspx

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