Подтвердить что ты не робот

Советы от ASP.NET MVC и уроки для разработчиков ASP.NET WebForms

Каковы некоторые полезные вещи, которые разработчики ASP.NET MVC могли бы предложить, чтобы помочь разработчикам ASP.NET WebForms лучше писать коды/веб-приложения?

Я парень WebForms, но со всей новой шумихой вокруг MVC я бы оценил некоторые комментарии о полезных советах, трюках и стратегиях, которые могут быть использованы в приложении webforms.

4b9b3361

Ответ 1

Что-то, что мне пришло в голову, когда я узнал о новой структуре MVC, заключается в том, что WebForms была, я думаю, попыткой MVC во многих отношениях. Разметка и код-код включают View и Controller, и вам остается писать собственную модель.

Эта идея сочетается с важными соображениями, которые я получил от изучения MVC. Наиболее важным из которых является закрепление основного домена вашей системы в целом и обеспечение того, чтобы вся общая логика была определена на уровне, который можно повторно использовать в этой области. Это ваша модель, и мне нравится называть логику, которая живет на этом уровне Domain Logic (я использую термины, я знаю). Ваша модель должна быть повторно использована в разных приложениях (основное приложение web/winforms, приложения winforms для утилиты и конфигурации, службы фоновой обработки, веб-сервисы и т.д.). Ваши приложения должны оставаться очень специфичными для их целей: они состоят из Presentation Logic (их взглядов) и Application Logic (их контроллеров). Все, что пересекает линию, требующую использования в других приложениях, легко классифицируется как Domain Logic и не должно быть частью кода приложения для любого конкретного приложения.

Надеюсь, это имеет смысл.

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

Ответ 2

  • Забыть о жизненном цикле страницы
  • Нет ViewState (по умолчанию это)
  • Нет обратных ссылок
  • Вам необходимо знать основы протокола HTTP (GET/POST). То же самое происходит с HTML (DropDownList является актуальным тегом)

Ответ 3

Я бы порекомендовал начать работу с просмотра скринкастов на сайте Microsoft Learn:

Видеоролики ASP.NET MVC

Там вы узнаете различия между моделью обратной передачи WebForms и тем, как MVC направляет ваши URL-адреса на действия и методы.

Второе важное отличие состоит в том, чтобы помнить, что в ASP.NET MVC вы не используете элементы управления, которые выполняют обратную передачу. Это может показаться немного более похожим на классический ASP, где код встроен на страницу в блоках на стороне сервера, но это того стоит. У вас будет полный контроль над созданным HTML, и это очень хорошо для таких вещей, как поисковая оптимизация.

Ответ 4

Некоторые советы

  • Не используйте стандартные элементы управления. Вместо этого обратите внимание на jQuery, MooTools.
  • Использование сильно типизированных моделей
  • Хорошей практикой является использование некоторых IoC, таких как Spring.NET

Ответ 5

Я также прихожу из webforms, но изучал asp.net MVC с момента предварительного просмотра 3.

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

Некоторые из сильных сторон MVC - это жесткая структура того, как вам нужно делать вещи и куда вы кладете код. Он также устраняет форму runat = server, и я считаю, что это не способствует использованию каких-либо элементов управления сервером asp.net(вам нужно самому написать весь HTML). Это в значительной степени определение webforms прямо там. MVC в значительной степени заменяет веб-формы своей собственной инфраструктурой.

Если вы когда-либо делали классический ASP или PHP, я бы назвал ASP.net MVC более структурированной структурой для того, что люди могут делать с этими более старыми языками сценариев. Это похоже на фреймворк FuseBox, но еще более структурированный и развитый.