Философия MVC применительно к веб-формам

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

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

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

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

10
задан John Farrell 20 August 2010 в 18:22
поделиться

3 ответа

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

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

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

http://weblogs.asp.net/craigshoemaker/archive/2009/11/03/vm-workshop-model-view-viewmodel-mvvm-and-the- шаблон-презентация-модель-в-5-ui-platform.aspx

http://russelleast.wordpress.com/2008/08/09/overview-of-the-modelview-viewmodel-mvvm-pattern-and- связывание данных /

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

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

Еще немного объяснений от MS по MVP и .Net

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

9
ответ дан 3 December 2019 в 22:34
поделиться

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

Если вы действительно не хотите использовать настоящий MVC, ознакомьтесь с шаблоном MVP (Модель - Представление - Презентатор).

3
ответ дан 3 December 2019 в 22:34
поделиться

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

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

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

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

3
ответ дан 3 December 2019 в 22:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: