Философия MVC применяется к веб-формам - PullRequest
10 голосов
/ 20 августа 2010

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

В то же время существующие приложения нашей компании написаны в виде веб-форм, поэтому я не хочу делать что-то настолько радикальное, как использование реальной среды ASP.NET MVC для создания моего приложения (хотя это действительно было бы ТАК радикально?).

Что я действительно хотел бы знать, так это то, будет ли практично или вообще возможно создавать WebForms, но при этом следовать философии MVC по разделению интересов.Неужели я просто добавлю ненужный слой на и без того сложную страницу .aspx + codebehind?

Кажется, что все в блогосфере думают, что ДОЛЖНЫ использовать какую-то платформу, если они хотят использовать MVC.Что в WebForms мешает им делать это самим?

Ответы [ 4 ]

9 голосов
/ 20 августа 2010

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

Вы также можете посмотреть шаблон MVVM . Это то, что многие сделали с WebForms, и это очень похоже на шаблон MVC. Применив шаблон MVVM к веб-формам, вы продемонстрируете, как можно по-прежнему использовать веб-формы, но при этом получите большую пользу, которую можно найти в шаблоне MVC с ASP.Net MVC. Это был бы хороший способ показать другим разработчикам в команде, что можно сделать, чтобы сделать WebForms более удобными и тестируемыми, не отказываясь от WebForms сразу.

Вот еще несколько ссылок на MVVM:

http://weblogs.asp.net/craigshoemaker/archive/2009/11/03/vm-workshop-model-view-viewmodel-mvvm-and-the-presentation-model-pattern-in-5-ui-platforms.aspx

http://russelleast.wordpress.com/2008/08/09/overview-of-the-modelview-viewmodel-mvvm-pattern-and-data-binding/

MVVM также очень популярен в приложениях Silverlight ....

Существует также шаблон MVP . Вот реализация с открытым исходным кодом для WebForms . Эта конкретная реализация используется DotNetNuke 5.3.

Немного больше объяснений от MS по MVP и .Net

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

3 голосов
/ 20 августа 2010

ИМХО, я думаю, вы должны просто перейти на MVC.

Вот несколько причин, по которым я делаю переход:

  • Мне нравится иметь возможность контролироватьмой вывод HTML.[Существуют определенные веб-элементы управления, которые отображают различные теги на основе браузера.Кроме того, приятно иметь контроль над Client ID.]
  • Мне нравится иметь возможность управлять состоянием моих приложений.[В отличие от того, чтобы WebForms пытались управлять им для меня, передавая большие порции данных, чем это строго необходимо.]
  • Я предпочитаю работать в тестовом режиме и обнаружил, что могу стать лучшетестирование покрытия с помощью MVC.
  • Я обнаружил, что такие библиотеки, как JQuery, невероятно хорошо работают с MVC;Я обнаружил, что создание элементов пользовательского интерфейса, которые были болью в WebForms, стали в MVC тривиальными.

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

3 голосов
/ 20 августа 2010

Да, каждая версия MVC даже более резко отличается от веб-форм, чем предыдущая.

Если вы действительно не хотите использовать фактический MVC, посмотрите MVP (Модель - Вид - Ведущий) выкройка.

0 голосов
/ 15 февраля 2011

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

  • Использовать маршрутизацию.В WebForms вы можете отображать маршруты на страницы ASPX, а не на контроллеры, чтобы получить красивые URL без расширений.Если вы используете .Net 3.5, вам понадобится пользовательский обработчик маршрутов.В 4.0 маршрутизация встроена.

  • Избегайте использования обработчиков событий в вашем коде позади.Page_Load будет достаточно в большинстве случаев.

  • Старайтесь не использовать ViewState и веб-элементы управления, чтобы поддерживать чистоту и стройность разметки.Если в вашей разметке есть кнопка отправки, напишите ее <<code>input type="button", а не так: <asp:Button... Вы можете выставлять свойства и использовать циклы foreach, используя <%= %>, как вы видите в MVC, а не с помощью Label и Repeaterуправления.

  • Используйте JQuery для настройки обработчиков событий, AJAX и манипулирования DOM на стороне клиента.

  • Примите концепцию ViewModel, связав объект ViewModel со своими страницами .aspx.

  • Если вам нужны WebControls, используйте ClientIDMode = "static" для контроля ваших идентификаторов в разметке (.Net 4.0)

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