Что является идеальным кандидатом для asp.net MVC - PullRequest
2 голосов
/ 29 марта 2009

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

каков будет процесс принятия решения при выборе между этими вариантами?

Ответы [ 4 ]

5 голосов
/ 30 марта 2009

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

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

  • MVC требует гораздо больше навыков от ваших разработчиков. Им потребуется значительный опыт во внутренней работе HTML / CSS, а также хорошее понимание того, как работает HTTP. Для кода на стороне клиента им потребуются сильные навыки работы с javascript и JQuery, а на стороне сервера - расширенное понимание принципов OO. И если вы планируете получить максимальную отдачу от MVC, попробуйте и модульное тестирование, и моделирование.

  • Платформа MVC 1.x в настоящее время не имеет много возможностей RAD из Visual Studio. Вы получаете текстовый редактор и intellisense, но это все. Нет мастеров, нет компонентов drag-n-drop, нет редакторов свойств и т. Д. Хотя это не так уж и плохо, часто это означает, что создание нетривиальных пользовательских интерфейсов займет значительно больше времени, особенно для менее опытных разработчиков.

  • MVC является очень новым, поэтому примеры кода, учебные пособия и примеры приложений очень трудно найти и имеют тенденцию быть очень ограниченными по объему. Документация также немного тонкая в настоящее время.

  • Возможно, самым большим недостатком инфраструктуры MVC является отсутствие вокруг нее развитого и зрелого стороннего рынка. С веб-формами на рынке есть множество очень продвинутых UI-пакетов и компонентов, а также множество проектов с открытым исходным кодом, которые вы можете позаимствовать.

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

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

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

1 голос
/ 09 апреля 2009

Последние 4 недели я провел, читая доступные материалы по MVC и делая различные видео и учебные пособия. Сегодня я начал работать над реальным приложением (с клиентом, ожидающим увидеть результаты в ближайшее время). Я согласен с предыдущими ответами (очень много, чтобы узнать, много много новых концепций, мало вместо сторонних компонентов). Тем не менее я рад, что потратил время на изучение MVC. - Вы должны преодолеть свой страх перед строкой HTML / CSS / JScript, которые скрыты с веб-формами. Требуется время, чтобы привыкнуть к тегам HTML. Как только вы это сделаете, вы узнаете о доступных возможностях. Вы вряд ли пропустите теги. - Если у вас нет опыта использования юнит-тестов, то я думаю, что mvc дает отличное представление о возможностях, которые приходят с юнит-тестированием. - ОО намного более присутствует и "очевиден" в MVC.
- Разделение интересов возможно и естественно. Вы не пропустите смешивание графического интерфейса и бизнес-логики в файле aspx.cs.
- Больше нет page_load (и n разных этапов). Если вам никогда не нравилась привязка данных asp.net, вы полюбите mvc. Я счастлив, что мне больше не придется это делать!

Минусы: - Это медленно. В начале это очень медленно. Вещи, которые занимают мало времени в веб-формах, могут занимать много времени с mvc.
- Отсутствие страниц - это тоже серьезное изменение. Но как только вы «усвоите» это (время ...), вы не пропустите страницы. - Также нужны O / R Mappers. Еще одна вещь, чтобы учиться. - Есть чему поучиться и к чему привыкнуть, если вы заинтересованы в получении максимальной отдачи от рамок. MVC - только половина mvc без юнит-тестирования. Модульное тестирование без фальшивых фреймворков на самом деле невозможно, поэтому вы тоже должны научиться этому. К тому времени, когда вы думаете, что прошли половину процесса модульного тестирования, вы обнаружите необходимость автоматизировать некоторые части вашей работы, а также нужно учиться nant. Это просто бесконечно ... Но опять же, как только вы начнете использовать эти технологии, вы удивитесь, как раньше обходились без них.

1 голос
/ 29 марта 2009

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

Если вам нужен веб-сайт, который можно быстро собрать без большого количества кода и вас не волнует разметка HTML. Чем лучше использовать WebForms.

Если вы помешаны на контроле и хотите контролировать все происходящее и создаваемую разметку. Чем MVC, вероятно, для вас.

MVC - это не абстракция модели HTTP, а значит, гораздо меньше делается для вас. Он не содержит состояния, как ViewState WebForms.

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

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

Основная причина, по которой я переключаюсь, связана с тестируемостью и дизайном. Веб-сайты IMO MVC значительно более тестируемы. Я могу протестировать все, кроме логики представления, с помощью модульных тестов, и, используя и тестируя расширения HtmlHelper, я могу даже протестировать достаточное количество логики представления. С WebForms мне пришлось перепрыгивать через множество обручей, чтобы протестировать код, и в результате я оставил большую часть приложения для ручного тестирования.

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

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

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