Как выбрать WebForms или ASP.NET MVC 3 для нового проекта?

Возможное дублирование:
MVC по сравнению с веб-формами
Производительность ASP.NET MVC

В ближайшие недели я начну новый веб-проект. Это общедоступный веб-сайт известного человека. У меня есть 2 варианта: использовать старый добрый ASP.NET 4 или новый ASP.NET MVC 3 с Razor.

Я не планирую проводить какое-либо модульное тестирование. Это довольно простой сайт, состоящий в основном из javascript, html и css.

Мне нужно построить админку для создания / удаления / редактирования страниц; добавлять / удалять изображения в галерею портфолио. И это, наверное, все, что мне нужно от админки. Ничего сложного.

Заявление об ограничении ответственности: У меня нет большого опыта работы с веб-формами или MVC, за исключением того, что я узнал из обучения Pluralsight и официальных руководств по ASP.NET. У меня есть промежуточные знания css и html; нет опыта работы с javascript. Но учитывая, насколько javascript так похож на другие языки ООП, я не слишком беспокоюсь, если мне придется запачкать руки с JS.

  • Что будет быстрее с точки зрения скорости разработки: WebForms или MVC?
  • Как насчет исходной производительности между ними?
  • Что было бы легче поддерживать в долгосрочной перспективе?

Если вы не советуете начинать веб-проект с нуля, возможно, вы могли бы порекомендовать вместо этого легкую ASP.NET CMS?


person Community    schedule 08.05.2011    source источник
comment
Вы задаете здесь как минимум три вопроса, и, комбинируя их, вы делаете это почти - если не полностью - слишком локализованным. Однако ключевые отдельные вопросы уже заданы и даны ответы, если вы хотите их найти ... Если вы не можете найти ответ на один из этих существующих вопросов, опубликуйте новый, который не дублирует то, что уже спросили.   -  person Shog9    schedule 03.06.2011
comment
Я действительно ненавижу, когда я ищу в Google только для того, чтобы найти ответ и поискать их.   -  person SixOThree    schedule 30.07.2012


Ответы (6)


Что будет быстрее с точки зрения скорости разработки: веб-формы или mvc?

Это зависит от многих факторов, но предположим, что вы используете технологии eqal как с веб-формами, так и с mvc, тогда mvc должен быть быстрее. У веб-форм есть некоторые накладные расходы из-за несоответствия между тем, как действительно все работает (например, что http не имеет состояния), и тем, что предполагается при написании кода (вы программируете так, как если бы приложение было с отслеживанием состояния)

Что было бы легче поддерживать в долгосрочной перспективе?

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

Мне нужно построить админку для создания / удаления / редактирования страниц; добавлять / удалять изображения в галерею портфолио.

Это то, чем хорош MVC - определение сущностей и быстрое создание действий и представлений List / Details / Create / Edit / Delete.

PS> Я не говорю, что старые добрые веб-формы ASP.NET - это плохо, просто они иногда становятся слишком сложными и за это нужно платить. Я думаю, что решение для электронной коммерции с открытым исходным кодом - NopCommerce - хороший тому пример. Он хорошо спроектирован, хорошо написан, но очень медленный из-за накладных расходов, необходимых для веб-форм.

person Community    schedule 08.05.2011
comment
Я согласен, MVC будет намного проще поддерживать. Это также будет более быстрый веб-сайт, и не забывайте ... никакого ViewState :-) - person Chase Florell; 09.05.2011
comment
Что, если время разработки также является фактором? Я имею в виду, что я не знаю MVC, но у меня есть ограничения по времени на разработку проекта. Что лучше: MVC или веб-формы. (Я знаю модель веб-форм). - person Vijay Balkawade; 27.07.2012
comment
Это решение полностью зависит от вас. Все, что я могу сказать, это то, что MVC действительно легко изучить и почти никогда не вызывает каких-то странных ошибок. Однако веб-формы ASP.NET недавно эволюционировали и теперь намного лучше, чем были раньше. - person kubal5003; 30.07.2012

Что будет быстрее с точки зрения скорости разработки: веб-формы или mvc?

WebForms могут развиваться немного быстрее, поскольку в них много R.A.D. разработка. Однако в долгосрочной перспективе вы пожалеете, что не разделяете своих опасений. Разделение проблем может занять больше времени, но его намного легче сохранить после факта.

Как насчет исходной производительности между ними?

MVC будет работать лучше, поскольку между контроллером и представлением не будет передаваться «лишнее». вы передаете только то, что необходимо (IE: нет ViewState)

Что было бы легче поддерживать в долгосрочной перспективе?

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

person Community    schedule 08.05.2011

У веб-форм и MVC есть свои плюсы и минусы. Но выбирать не обязательно. Вы можете использовать пакет nuget для добавления MVC в приложение веб-форм. Вам просто нужно начать с веб-форм, а затем они будут включать MVC. Таким образом, вы можете получить лучшее из обоих миров, в зависимости от ваших потребностей.

Вот ссылка Скотта на этот пакет NuGet.

Если вы просто хотите создать CMS, вам обязательно стоит использовать Orchard.

person Community    schedule 08.05.2011
comment
Поскольку это НОВЫЙ проект, я бы не стал смешивать WebForms и MVC в качестве выбора. Техническое обслуживание было бы кошмаром (ИМО) - person Chase Florell; 09.05.2011

Что будет быстрее с точки зрения скорости разработки: веб-формы или mvc?

Некоторые утверждают, что использование веб-форм связано с наличием «готовых» серверных элементов управления, которые могут делать практически все, что вы хотите. Хотя это могло быть правдой в начальной версии MVC, теперь, когда мы находимся на v3, и сообщество принимает активное участие - вы сможете найти порт MVC (например, пользовательский помощник HTML), чтобы делать эти вещи за вас. .

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

Так что сложно отнести к категории «разработку», но с точки зрения запуска полной страницы на базе внутренней базы данных, я бы сказал, что MVC быстрее.

Как насчет исходной производительности между ними?

Сложно ответить. Все что угодно с производительностью есть. Я где-то читал, что механизм просмотра Razor немного быстрее, чем механизм просмотра ASPX, на котором основаны веб-формы. Добавьте к этому такие вещи, как ViewState, и я должен сказать (без каких-либо дополнительных «фактов»), что MVC будет быстрее. Но не обращайте внимания на технологии, чтобы иметь хорошо работающие приложения, смотрите на себя, чтобы написать оптимальный код с использованием имеющихся технологий.

Что было бы легче поддерживать в долгосрочной перспективе?

Определенно MVC - никаких вопросов по этому поводу. SoC (разделение проблем) - это огромный толчок в MVC, не только с разделением M-V-C, но и с подходом «соглашение по конфигурации», который лежит в основе MVC. EditorTemplates и DisplayTemplates являются прекрасным примером этого - они работают в соответствии с соглашением (тип модели, который ему передается). Таким образом, вы можете создавать несколько шаблонов и пролистывать разные типы моделей без каких-либо изменений в коде серверной части.

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

В целом - MVC FTW.

person Community    schedule 08.05.2011

Orchard - это заслуживающая внимания система MVC.

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

Если вы намерены создать это самостоятельно и вам удобно работать с Html, Css и Javascript, тогда вы, вероятно, захотите сделать MVC3. Предполагая, что у вас есть базовые навыки работы с веб-сайтом, MVC3 действительно устранил большинство потенциальных преимуществ веб-форм в плане продуктивности.

person Community    schedule 08.05.2011

Umbraco - это бесплатная CMS, классная и основанная на .NET.

http://umbraco.com/

person Community    schedule 08.05.2011
comment
Да, но зачем использовать это через веб-приложение или подход MVC? - person slugster; 09.05.2011