Стоит ли переносить существующий проект asp.net-mvc с механизмом просмотра веб-форм на razor?

У меня большой веб-сайт asp.net-mvc. Я недавно обновился до MVC 4, но одна вещь, которую я обсуждаю, стоит ли переходить на движок бритвы. Я вижу, что есть инструменты для "автоматического" обновления, но я пытаюсь понять, стоит ли миграционная боль. Всего у меня около 100 просмотров (как обычных, так и частичных). Если это кодовая база, с которой мне придется какое-то время жить, стоит ли это усилий?

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


person leora    schedule 07.04.2013    source источник
comment
Это действительно того не стоит. Если у вас есть существующее приложение, вы вносите новые ошибки и проблемы. Особенно если речь идет о партиалах. Мне непросто писать. Я НЕНАВИЖУ aspx Views. Но, столкнувшись с подобной дилеммой пару лет назад, мы решили сделать все новые представления RAZOR и иногда реорганизовать представления, которые требовали серьезной доработки. В противном случае вы обнаружите, что это будет долгий болезненный путь, ведущий к тому, что необъяснимые затраты (внесенные ошибки) НЕ стоят головной боли.   -  person Dave Alperovich    schedule 22.08.2013


Ответы (4)


Если у вас нет конкретной причины, то ИМХО нет. Razor немного медленнее (~ 5% согласно большинству источников), чем представления WebForms , однако это может быть устаревшая информация. В лучшем случае они будут отображать точно такую ​​же скорость. Я не видел ничего, что говорило бы о том, что razor работает быстрее, чем веб-формы (ASP. NET MVC 3 Razor) и не предлагает абсолютно ничего лишнего, чего нельзя было бы сделать с разметкой WebForms.

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

Итак, стоит ли переписывать все приложение? Нет - ничего не выиграешь. Забегая вперед, стоит ли вам использовать Razor? В зависимости от обстоятельств, большинство «кажется» движется в этом направлении, это действительно выглядит лучше и делает виды немного чище.

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

PS - Это, наверное, скоро закроют как субъективный вопрос.

person Tommy    schedule 07.04.2013

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

Когда впервые появился razor, мы реализовали некоторую смесь, и поэтому в настоящее время у нас есть сайт с представлениями razor и webforms (это было реализовано до того, как razor стал механизмом просмотра mvc по умолчанию).

Мы написали все новые представления в razor и оставили старые представления в веб-формах, которые мы медленно перемещаем. Но это для нашей пользы, а не для клиентов или конечных пользователей. Таким образом, перенос только представлений - дорогостоящее и своевременное дело, не имеющее реальной цели ...

Если вы правильно разложили свое приложение на уровни, то, что я бы посоветовал (серьезно), если вы задумывались над этим, - это оставить свой существующий веб-сайт в покое и создать отдельный автономный сайт, используя новую инфраструктуру mvc. Есть определенные преимущества от обновления сайта с приложения mvc 1 или 2 до нового приложения mvc 5.

В настоящее время мы делаем это у меня на работе, так как все наши модели и логика находятся в отдельной dll, а у нас очень тонкие контроллеры. Мы замечаем множество изменений и обновлений из новых встроенных функций mvc5. Такие вещи, как объединение, twitter-bootstrap и т. Д. - это все, что мы можем использовать, чтобы гарантировать преимущества, которые замечает заказчик.

Это тот же старый бэкэнд, но с новым сияющим лицом, и этим стоит заняться.

person spaceman    schedule 22.08.2013

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

Старое сообщение

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

MVC 4 улучшает эти функции (основные моменты):

  • Обновленные и модернизированные шаблоны проектов по умолчанию
  • Новый шаблон мобильного проекта
  • Множество новых функций для поддержки мобильных приложений
  • Рецепты для настройки генерации кода
  • Расширенная поддержка асинхронных методов

Для получения дополнительной информации о MVC4 вы можете обратиться к: http://www.asp.net/mvc/mvc4

Изменить: поскольку вопрос касается конкретного просмотра,

Представления работают одинаково в обеих версиях без каких-либо изменений,

вы можете попробовать удалить нежелательные механизмы просмотра

protected void Application_Start() 
{ 
    ViewEngines.Engines.Clear(); 
    ViewEngines.Engines.Add(new RazorViewEngine()); 
}

Если вы хотите улучшить рендеринг, вы должны использовать Partial View

<div class="news">
    <h3>News</h3>
    @Html.Partila("NewControl", Model.NewsItems)
</div>

Часть кода:

public ActionResult News(){
    NewItemViewModel vm = new NewItemViewModel();
    vm.Items = repository.GetNews();
    return PartialView("NewsControl",vm);
}

Это увеличит нормальную скорость в 10 раз.

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

Это должно помочь в решении проблемы производительности.

person MarmiK    schedule 27.08.2013
comment
Я уже использую asp.net MVC 4, поэтому вопрос не в том, должен ли я обновляться до MVC 4, а только вокруг механизма просмотра - person leora; 27.08.2013

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

person jwaliszko    schedule 27.08.2013