Советы от ASP.NET MVC и уроки для разработчиков ASP.NET WebForms - PullRequest
17 голосов
/ 07 ноября 2008

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

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

Ответы [ 5 ]

16 голосов
/ 08 ноября 2008

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

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

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

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

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

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

Видео ASP.NET MVC

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

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

1 голос
/ 01 октября 2009

Несколько советов

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

Я тоже из веб-форм, но изучаю asp.net MVC начиная с предварительного просмотра 3.

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

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

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

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