Почему преобладают веб-фреймворки, основанные на действиях?

Большинство веб-фреймворков по-прежнему используют традиционную модель MVC на основе действий. Контроллер получает запрос, вызывает модель и делегирует отрисовку шаблону. Это то, что делают Rails, Grails, Struts, Spring MVC ...

Другая категория, фреймворки на основе компонентов, такие как Wicket, Tapestry, JSF или веб-формы ASP.Net, стали более популярными за последние годы, но я считаю, что традиционный подход, основанный на действиях, гораздо более популярен. И даже веб-формы ASP .Net стали родственным именем ASP .Net Web MVC. Изменить: Возможно, мое восприятие было неправильным из-за впечатления растущего интереса к Wicket. Если я спрошу Google Trends, в традиционных фреймворках MVC наблюдается гораздо больший рост.

Я думаю, что приложения, созданные с обоими типами фреймворков, очень сильно пересекаются, поэтому возникает вопрос: почему фреймворки, основанные на действиях, так преобладают?


person deamon    schedule 12.06.2010    source источник


Ответы (6)


фреймворки на основе компонентов, такие как Wicket, Tapestry, JSF или ASP.Net Web Forms, стали более популярными за последние годы.

[Нужна цитата]?

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


MVC лучше соответствует природе Интернета без сохранения состояния. Компонентные каркасы - это абстракция, которую веб-разработчики не хотели.

person John Farrell    schedule 12.06.2010
comment
Безгражданство не является исключительной собственностью Интернета. Я видел много примеров устаревших приложений, работающих в таком режиме. Интернет также может иметь состояние (файлы cookie, AJAX и т. Д.). - person Thevs; 13.06.2010
comment
Не знаю, как другие, но веб-формы ASP.Net - это самая протекающая из возможных абстракций в Интернете. ASP.Net MVC не мешает и работает так, как работает Интернет. Я думаю, что компоненты, основанные на компонентах, были созданы для того, чтобы порадовать тупых обезьянок и попытаться заинтересовать разработчиков настольных клиентов, а не для упрощения работы с Интернетом. - person Neal; 14.06.2010
comment
MVC лучше соответствует природе Интернета без сохранения состояния. Компонентные каркасы - это абстракция, которую веб-разработчики не хотели. Интересно, что это именно то, что я пытался сказать, но меня проголосовали против, а вы - нет. Браво за то, что сформулировал это лучше, чем я. - person Gregory Higley; 15.06.2010

Почему вещи популярнее? Причин несколько: хорошее взаимодействие с пользователем, быстрый цикл разработки, дешевые вещи и т. Д.

Но иногда

самый громкий

или самый раскрученный (рельсы, хотя это здорово ;-))

или самый высокомерный (яблоко)

или вещи с самым агрессивным маркетингом (Microsoft)

победит.

Это называется эволюцией.

Кстати: я с Thevs. Фреймворки на основе компонентов будут окончательными победителями (например, GWT / Vaadin или wicket).

person Karussell    schedule 12.06.2010

Инерция. После того, как вы много вложили в одну технологию, становится все труднее перейти на что-то лучшее. И это не в 10 раз лучше, потому что тогда все (даже генеральный директор) увидели бы, что изменение необходимо.

person Stephan Eggermont    schedule 12.06.2010

Я считаю, что это потому, что фреймворки, основанные на действиях, дают разработчикам (и дизайнерам) больше контроля над внешним видом страницы. Компонентные фреймворки пытаются (безуспешно, ИМХО) скрыть тот факт, что Интернет - это Интернет. Они пытаются сделать веб-программирование чем-то вроде программирования собственного инструментария виджетов рабочего стола, такого как WinForms или Cocoa.

Но Интернет очень, очень отличается от этого. Я думаю, что фреймворки, основанные на действиях, популярны, потому что они это признают.

ИЗМЕНИТЬ

Очевидно, некоторые люди неправильно поняли, что я имею в виду, поэтому позвольте мне пояснить. Я НЕ критикую веб-приложение, которое кажется пользователям функционирующим как настольное приложение. У меня абсолютно нет проблем с этим.

Я говорю о основной методологии и философии кодирования. Каждый тег в системе библиотеки тегов отображает HTML определенным образом, аналогично виджету в библиотеке программирования для настольных компьютеров, такой как Cocoa или WinForms. Некоторые системы позволяют настраивать отображаемый HTML, но иногда это может быть нетривиальной задачей. Он будет отображать классы CSS и т. Д., Над которыми вы либо мало контролируете, либо должны прилагать особые усилия для контроля. Он претендует на роль черного ящика, но этого не может быть, потому что, если вы хотите стилизовать визуализированный HTML или нацелить его на JavaScript, вы должны понимать его структуру и так далее.

person Gregory Higley    schedule 12.06.2010
comment
@Thevs Ничего. Я не говорю о том, как приложение работает с точки зрения пользователей. Я говорю о том факте, что большинство систем библиотек тегов (особенно ASP.NET) пытаются имитировать поведение библиотек виджетов рабочего стола с отслеживанием состояния. У вас также меньше - или менее простой - контроль над HTML, отображаемым виджетами, что может затруднить выполнение CSS, а иногда и JavaScript. - person Gregory Higley; 13.06.2010
comment
Суть компонентов в том, что они являются черным ящиком. Что касается структуры (элементы HTML), вам все равно - элементы, которые использует компонент, - это те, которые ему требуются. С точки зрения стиля компонент должен обеспечивать максимальное количество разумных стилевых хуков (классов). То, как вы узнаете о хуках стиля, зависит от фреймворка - либо документации, либо изучения разметки компонента. Если компонент плох по структуре или стилю, это плохой компонент. - person ireddick; 16.06.2010

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

person ireddick    schedule 15.06.2010

Я думаю, вы только видите эти фреймворки, которые видны повсюду. Но большинство программистов используют собственные (настраиваемые) или гораздо более простые модели фреймворка (например, ExtJS или JQuery) и молча выполняют свою работу.

РЕДАКТИРОВАТЬ: Кстати, я думаю, что модель MVC пытается имитировать старую и, вероятно, устаревшую модель разделения бизнеса / презентации, которая была предложена для устаревших приложений некоторое время назад. Я не вижу будущего для этой модели (через 2-3 года). AJAX уже меняется во всех отношениях, с которыми вы работаете с серверной частью.

person Thevs    schedule 12.06.2010
comment
Но какова внутренняя часть приложения JavaScript (Ajax) в браузере? - person deamon; 13.06.2010
comment
Я имею в виду серверную логику как back-end, который вызывается запросом AJAX. - person Thevs; 13.06.2010