Должен ли я мигрировать в ASP.NET MVC?



Я только что слушал 17-й подкаст команды StackOverflow, и они так высоко говорили о ASP.NET MVC что я решил проверить это.



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



есть ли действительно большие плюсы, которые сделали бы его стоящим?



EDIT: это не существующий проект, это проект, который вот-вот начнется, Поэтому, если я собираюсь это сделать, это должно быть сейчас...





Я только что нашел это




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




Как это работает? Нет отображение? Никаких событий?

501   20  

20 ответов:

Если вы вполне довольны WebForms сегодня, то, возможно ASP.NET MVC не для вас.

Я был разочарован с WebForms в течение очень долгого времени. Я определенно здесь не одна. Интеллектуальный клиент, статусная абстракция через интернет сильно ломается в сложных сценариях. Я люблю HTML, Javascript и CSS. Форм пытается скрыть это от меня. Он также имеет некоторые действительно сложные решения проблем, которые на самом деле не так сложны. Webforms также по своей сути трудно протестировать, и хотя вы можете использовать MVP, это не отличное решение для веб-среды...(по сравнению с MVC).

MVC обратится к вам, если... - вы хотите больше контроля над вашим HTML - хотите бесшовный опыт ajax, как и любая другая платформа - хочу проверяемость через-и-через - хотите содержательные URL-адреса - Ненавижу иметь дело с проблемами postback & viewstate

а что касается рамки предварительного просмотра 5, то она довольно стабильна, дизайн в основном там, и обновление не сложный. Я запустил приложение на Preview 1 и обновил его в течение нескольких часов после появления нового предварительного просмотра.

важно иметь в виду, что MVC и WebForms не конкурируют, и один не лучше другого. Это просто разные инструменты. Большинство людей, похоже, подходят к MVC vs WebForms как "один должен быть лучшим молотком, чем другой". Это неправильно. Один-молоток, другой-отвертка. Оба используются в процессе объединения вещей, но имеют разные сильные и слабые стороны.

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

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

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

Это, и я не поддерживаю нынешнюю "тестовую все" причуду...

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

но, есть и минусы. Поскольку вы не используете веб-формы, вы не можете использовать их ASP.NET контроль. Это означает, что если вы хотите создать GridView, вы будете запускать цикл for и создавать таблицу вручную. Если вы хотите использовать ASP.NET мастер в MVC тогда вам придется создавать самостоятельно.

Это хорошая структура, если вы больны и устали от ASP.NET webform и хотите выполнить все самостоятельно. Но вы должны иметь в виду, что вы выиграете от создания всех вещей снова или нет?

в целом я предпочитаю WebForms framework из-за богатого набора элементов управления и автоматической сантехники.

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

некоторым людям не нравится код, смешанный с HTML, и я могу это понять, но я предпочитаю гибкость по сравнению с такими вещами, как жизненный цикл страницы, рендеринг HTML и biggy для меня - нет viewstate cruft, встроенного в источник страницы.

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

@Jonathan Holland я видел, что вы были проголосованы, но это очень важный момент. Я читал некоторые сообщения вокруг интертубов, где люди, кажется, сбивают с толку ASP.NET MVC в рамках и MVC шаблон.

MVC сам по себе является ШАБЛОН. Если все, что вы ищете, это "разделение проблем", то вы, безусловно, можете достичь этого с помощью webforms. Лично я большой поклонник из MVP pattern в стандартной n-уровневой среде.

Если вы действительно хотите полностью контролировать свой след в мире ASP.NET тогда в MVC в государственной нормативной структуры для вас.

@Juan Manuel вы когда-нибудь работали в классическом ASP? Когда вам нужно было запрограммировать все свои собственные события и элементы" viewstatish " (например, выпадающий список, возвращающий выбранное значение после отправки формы)?

Если так, то ASP.NET MVC не будет чувствовать себя неловко с места в карьер. Я бы проверил удивительную серию Роба Конери"MVC Storefront " где он проходил через рамки и строил каждый ожидаемый компонент для сайта магазина. Это действительно впечатляет и легко чтобы следовать дальше (догонять сложно, потому что Роб был действительно активным и много публиковался в этой серии).

лично, и совершенно вопреки Джеффу Этвуду чувства по теме, мне очень понравилась модель веб-формы. Это было совершенно иначе, чем vbscript/classic ASP days наверняка, но держать viewstate под контролем и писать свои собственные CSS-дружественные элементы управления было приятно, на самом деле.

опять же, обратите внимание, что я сказал "понравилось". ASP.NET MVC-это очень круто и больше похоже на другие веб-технологии там. Это, конечно, легче перейти от ASP.NET MVC to RAILS, если вам нравится или нужно работать на нескольких платформах. И хотя, да, это очень стабильно, очевидно (этот самый сайт), если ваша компания запрещает "бета" программное обеспечение любого цвета; внедрение его в производство в это время может быть проблемой.

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

одна хорошая вещь то, что я заметил, проходя через многие сообщения в блоге и видеоуроки, пытаясь разработать MVC pet-проект, заключается в том, что большинство из них следуют текущим рекомендациям (TDD, IoC, инъекция зависимостей и в меньшей степени POCO), а также много JQuery, чтобы сделать опыт более интересным для пользователя, и это то, что я могу применить к своим текущим приложениям webform, и что я не был подвергнут такой глубине раньше.

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

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

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

MVC не для всех, особенно если вы не занимаетесь модульным тестированием части GUI. Если вы знакомы с веб-формами, оставайтесь с ним. Веб-формах 4.0 будет исправить некоторые существующие недостатки, такие как идентификатор, который автоматически присваивается ASP.NET. Вы будете иметь контроль над ними в следующей версии.

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

Я пытаюсь сделать то же самое решение о ASP.NET MVC,Хуан Мануэль. Теперь я жду подходящего проекта размера укуса, с которым я могу экспериментировать. Если эксперимент пройдет хорошо-моя интуиция говорит, что так и будет-тогда я буду строить свои новые большие проекты вокруг структуры.

с ASP.NET в MVC, вы потеряете модели отображение/обратной передачи в веб ASP.NET форм. Без этой абстракции вы работаете гораздо более тесно с HTML и HTTP POST и Получить команды. Я считаю, что программирование пользовательского интерфейса несколько в направлении классического ASP.

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

возможно, это лучший-или худший-из обоих миров.

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

вы никогда не слышали о многоуровневом развитии?

Ajax, RAD (веб-формы с ajax очень часто являются антирадарными), полный контроль (без разработки целого набора кода и циклов). вебформы хороши только для привязки какой - то сетки и тому подобное и ни для чего другого, а еще одна действительно важная вещь-производительность. когда вы застряли в веб-формах, ад u рано или поздно включится MVC.

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

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

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

нет, вы не должны. не стесняйтесь попробовать его на новом проекте, но многие люди знакомы с ASP.NET webforms еще не любят его, из-за того, что приходится возиться с raw HTML + много разных концепций + довольно тонкие подборки документации/учебников.

Это факт, что ASP.net MVC только в "Preview 5" может быть причиной для беспокойства при рассмотрении его?

Я знаю, что StackOverflow был создан с его помощью, но есть ли шанс, что Microsoft может реализовать значительные изменения в рамках, прежде чем он официально выйдет из бета-версии/альфа-версии/предварительного просмотра?

Если вы настроены на использование фреймворка MVC, то я бы предпочел использовать проект Castle...

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

MVC это не серебряная пуля, особенно не Microsoft MVC...

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

мало ли он понял, что вся идея разделения зрения также решена часть обслуживания. Это перевешивает тестируемость в некоторых приложениях. Нам не нужно тестировать HTML-дизайн, если мы используем инструмент WYSWYG. Веб-формы хороши по этой причине.

Я часто видел, как люди злоупотребляют postback и viewstate и обвиняют его в модели ASP .NET.

помните, что лучшие веб-страницы по-прежнему остаются.Htmls и вот где есть сила АСП .ЧИСТЫЙ MVC НА.

Comments

    Ничего не найдено.