MVC Razor поверх ASPX

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

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

4 ответа

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

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

По причинам удобства обслуживания я лично НЕ смешивал их в одном приложении.

ОБНОВЛЕНИЕ после комментария: 1000 экранов определенно НЕ среднего размера больше ИМО, НО, если вы не используете макеты и/или мастер-страницы, ваш вариант может быть лучше всего "смешать их", чтобы извлечь выгоду из лучшего/упрощенного синтаксиса и перформанса для новых страниц, но не требуется чтобы приспособить старые. Старые страницы можно адаптировать один за другим, когда они меняются по другим причинам... У вашей команды не должно быть большой проблемы с попаданием в Razor, поскольку она очень близка к "нормальному программированию", и вам нужно всего лишь изучить очень мало синтаксических "специальностей"...


Я бы сказал, что преимущества Razor заключаются в следующем:

  • Конкретный синтаксис, который очень похож на то, как вы пишете обычный код С# (ознакомьтесь с последним сообщением в блоге Phil Haack, в котором сравнивается синтаксис Asxp with Razor: http://haacked.com/archive/2011/01/06/razor- синтаксис-quick-reference.aspx)

  • Автоматическое кодирование HTML-кода (что помогает защитить вас от атак html-инъекций)

  • Встроенная (хотя и не 100%) проверка вашей разметки, которая поможет вам избежать несбалансированных тегов

Концепции, связанные с страницей, также легко сопоставляются с тем, что у вас есть в ASPX

  • Как вы видите, встроенный код по-прежнему разрешен
  • Разделы (которые могут быть необязательными) эквивалентны заполнителям содержимого
  • Страницы макета вместо главных страниц
  • Понятия полного и частичного взглядов одинаковы
  • @functions {...} блоков вместо...

Кроме того, у Razor есть ряд полезных концепций, которые, я бы сказал, лучше, чем то, что доступно в ASPX:

  • Функции @helper для действительно легкого создания функций, которые генерируют разметку
  • ключевое слово @model для указания типа модели вашего вида без необходимости писать директиву <% @Page... с полным именем класса

По моему совету Razor - лучший вариант.


Вы читали блог ScottGu. Это не касается производительности, но вы будете уверены, почему использовать Razor.

Компактная, экспрессивная и жидкая: Razor минимизирует количество символов и нажатие клавиш, требуемых в файле, и обеспечивает быстрый рабочий процесс с жидкостью. В отличие от большинства синтаксисов шаблонов, вам не нужно прерывать кодирование, чтобы явно указывать серверные блоки в вашем HTML. Парсер достаточно умен, чтобы сделать это из вашего кода. Это позволяет действительно компактный и выразительный синтаксис, который является чистым, быстрым и забавным.

Эта тема обсуждалась уже столько раз.

Производительность бритвы ASP.NET MVC 3

Сравнение ASP Engine MVC View Engine

MVC 3 ASPX VS RAZOR View Engine


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

licensed under cc by-sa 3.0 with attribution.