Какая альтернатива MVC? - PullRequest
3 голосов
/ 17 апреля 2009

Кажется, что каждый проект, в котором я работаю, использует архитектуру Model View Controller, и именно так я выполняю свои собственные проекты. Есть ли альтернатива? Как еще можно создать приложение с постоянным хранилищем и пользовательским интерфейсом?

Ответы [ 7 ]

8 голосов
/ 17 апреля 2009

MVC существует уже некоторое время. Это проверенный временем и проверенный шаблон . Многие фреймворки используют MVC Pattern . Мартин Фаулер деконструировал MVC в: Контролирующий докладчик и Пассивный просмотр .

Архитектор Кристофер Александр сказал это лучше всего:

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

Я не уверен, почему вы хотели бы уйти из MVC. Есть ли проблема, с которой вы столкнулись, которую MVC не решает красноречиво? Чтобы дать вам лучший ответ нам нужно узнать больше о вашем проблемном домене .

Что следует учитывать при рассмотрении шаблонов / архитектуры : Если вы создаете что-то с архитектурой типа Myspace , вам потребуется надежная архитектура (MVC). Если вы создаете простой интерфейс crud через Интернет - подойдет почти все.

Для веб-форм .Net (я предполагаю, что веб, так как вы не сказали толстый или веб-клиент), который не является MVC, поддерживал их как кошмар. Приложения Web Forms, которые жили более пары лет, становились большими шариками грязи . Уже тогда разработчики обнаружили способы использования MVC с веб-формами .

По иронии судьбы, отсутствие архитектуры MVC в веб-формах ASP.NET стало одной из основных претензий, которые привели к разработке ASP.Net MVC framework .

Из опыта, если вы не используете какой-либо подход MVCesk, ваши решения становятся сложными в обслуживании и раздутыми. Эти приложения умрут медленной мучительной смертью.

Если ваши решения являются небольшими одноразовыми проектами, то все равно что-то получается вместе. Черт, есть инструменты, которые будут генерировать все от экранов до уровня доступа к данным. Все, что работает, чтобы сделать работу.

6 голосов
/ 17 апреля 2009

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

4 голосов
/ 17 апреля 2009

Пара ссылок, сравнивающих различные шаблоны MV *, которые могут быть полезны: Шаблоны WPF: MVC, MVP или MVVM или…? & MVC, MVP и MVVM

3 голосов
/ 17 апреля 2009

Посмотрите в представлении модели MVP.

0 голосов
/ 29 марта 2011

В теории:

MVC - это проверенная технология и Яда-Яда-Яда, и она идеально подходит для веб-сайтов.

Но в реальном случае:

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

Кроме того, MVC с треском проваливается для веб-сайтов, когда он собирается подключиться к модели, отличной от простого POST / GET, он терпит неудачу с асинхронизмом xml и не работает с ajax. (*)

(*) существует какое-то исправление, но дизайн должен быть понятным и функциональным, и если вам нужно «исправить его», то он не является ни понятным, ни функциональным.

Лично я считаю, что главная проблема с MVC заключается в том, что он прикладывает столько усилий в контроллере, где большинство проектов используют не более 5 строк для части контроллера.

ps. Большинство "хорошо сделанных" проектов MVC являются трехуровневыми.

ps2: MVC, исключая некоторые рамки, является просто гудком, НЕ СЕРЬЕЗНОЙ ТЕРМИНОЛОГИЕЙ и отражается в группе «интерпретации mvc».

0 голосов
/ 19 ноября 2010

Я разработал альтернативу ASP.NET MVC. Вы получаете ту же слабую связь и разделение интересов, но разница в том, как вы строите свои проекты.

В моем блоге есть несколько видео, исходный код для фреймворка, пример проекта и несколько надстроек VS.NET (элемент «Новый проект», «Новый построитель» и «Новый вид»).

Конструктор для ASP.NET

Некоторые ключевые отличительные особенности 1. Шаблоны просто HTML - без кода, смешанного с шаблонами 2. Таким образом, шаблоны можно повторно использовать в разных представлениях, и дизайнеры веб-сайтов могут создавать шаблоны в своем инструменте выбора. 3. Строго набранный код (без ViewData и прочего), так что вы получаете intillisense, проверку времени компиляции, навигацию F12 и т. Д. 4. Вы строите страницы в виде композиций представлений, а не наизнанку 5. Вид можно трактовать как «настоящие» классы. 6. Все выполнено, поэтому нет компиляции во время выполнения

Довольно много других дифференцирующих факторов.

0 голосов
/ 17 апреля 2009

Интерфейс пользователя - Просмотр, и у приложения всегда будет модель, а мост между ними - Контроллер. Весь MVC не является чем-то особенным, поскольку так будет всегда.

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

...