Вопрос по asp.net-mvc, asp.net-mvc-3 – MVC ASP.NET или Razor

17

Я очень новичок в MVC ... Я немного знаком с Silver-light, WPF и MVVM, но мало знаю о MVC. Я следую главному учебному пособию на сайте Microsofthttp://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/cs/adding-a-view, Я полагаю, что я нахожусь на статье 3 из 9. Первоначально он сказал мне, чтобы создать мой сайт MVC с использованием & quot; View Engine & quot; из "бритвы". Я решил использовать «ASPX» вместо "Бритва" как я и думал, у меня будет меньше сторонних зависимостей.

При запуске нового веб-приложения MVC лучше всего использовать & quot; Razor & quot; в отличие от «ASPX». Если честно, я понятия не имею о разнице. Как уже говорилось, я выбрал ASPX, чтобы избежать каких-либо дополнительных сторонних библиотек или кода. Если лучше выбрать ASPX, я немного запутался, почему учебники на сайте MS говорят мне начать с Razor.

Может ли кто-нибудь пролить свет на то, когда я должен использовать & quot; ASPX & quot; рассматривать движок в противоположность «бритве» посмотреть двигатель?

Да, мне нужно немного больше, почему против 1 против другого. Что обеспечивает один, а другой - нет. Я ограничиваю себя сторонней реализацией с открытым исходным кодом, которая может не появиться через несколько лет, если я использую Razor и т. Д.? Dan P
Увидетьrelated SO thread EdSF
TL; DR; Бритва лучше. Joe

Ваш Ответ

4   ответа
-7

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

@IrishCieftain У меня очень хорошие знания MVVM Silverlight и WPF. При переключении на веб я предположил, что MVC была наиболее близкой корреляцией. Если вы не предлагаете MVC ASP.NET MVC или Razor, что вы предлагаете? Dan P
Мой комментарий был @IrishChieftain. Razor не поддерживает код в представлении так же, как Spark или оригинальный движок ASP. Фактически, Razor - это попытка очистить разметку вида. Злоба IrishChieftan по отношению к Razor необоснованна, как и его одобрение оригинального движка ASP.
Razor не поощряет объединение кода с разметкой больше, чем любой другой движок представления. Если вы находитесь под таким впечатлением, вы, вероятно, дезинформированы. Основная концепция ASP.NET MVC заключается в том, что если вы хотите расширить представление с помощью логики на основе кода, вы пишете расширение HtmlHelper в отдельный файл класса.
Я предлагаю ASP.NET MVC с обычным парсером.
@IrishChieftan Ваш аргумент, что каждый образец Razor, который вы видели, включает код в представление, ошибочен. Если вы видите бизнес-логику в View, то это вина разработчика, а не View Engine. Всеми инструментами можно злоупотреблять. Когда Razor используется правильно, результирующий код гораздо быстрее записывается и значительно более читабелен по сравнению с аналогичным<% .. %> блоки. Используя оба эти параметра, я могу сообщить, что больше нет причин использовать оригинальный движок представления ASP - его неполный период.
20

ей. ASPX в порядке, но Razor лучше, в основном потому, что он не мешает вам.

Вы должны прочитать сообщение в блоге Скотта Гатри.Представляем "Бритву".

Вы в основном заменяете открывающий и закрывающий теги<% а также%> с@ символ, так что меньше нажатий клавиш, чтобы сделать то же самое, то есть

<%: Model.UserName %>

становится

@Model.UserName

а также

<% foreach (string name in nameList) { .. } %>

становится

@foreach (string name in nameList) { .. }

Это немного больше, чем это, но не так много.

Так что, по сути, Razor сокращает & lt;% = blah% & gt; с @blah? Если это так, отредактируйте свой ответ, и я приму, поскольку все, что я вижу в этом посте, это то, что он делает. Dan P
Ты понял. Редактировать на своем пути ...
привет, я хотел бы знать, можем ли мы написать многоуровневые приложения с помощью бритвы
Вот еще один хороший ресурс, который должен дать вам утешение относительно того, собирается ли Razor куда-либо:dotnetrocks.com/default.aspx?showNum=606 (Эпизод .NET Rocks с Филом Хааком о Razor и MVC)
Я уже получил ответ, но кроме & lt;% = name% & gt; с @name есть ли другие существенные различия. Буду ли я советовать запускать приложение в качестве MVC & quot; ASPX & quot; двигатель в сравнении с «бритвой» Двигатель? Dan P
1

& Quot; дополнительные сторонние dll или код & quot; вы бы положились на хорошо устоявшихся и совершенно не сложно включить.. Не похоже, что вы должны выследить их. Это очень простое развертывание Xcopy.

Как вы уже видели, сайт MS MVC использует Razor. Большинство (все?) Сайтов и книг, которые я читаю, используют Razor.

Используйте Razor, и вы найдете гораздо больше помощи, чем с aspx в MVC.

Я боюсь, что Razor - это новейшая и самая крутая технология, которая будет заменена в следующем VS. Я был сожжен раньше. Если я собираюсь адаптировать технологию, мне нужно знать, что она будет рядом и не будет заменена «MS Razor 2». Что конкретно предлагает Razor по сравнению с MVC от MS? Dan P
бритваIS Технология Microsoft. Кроме того, Razor V2 уже планируется выпустить с ASP.NET MVC4, но не должно быть проблем с обратной совместимостью - это расширение существующей базы, а не новый синтаксис языка.
Спасибо, и ты поймал мою сгоревшую деталь. Я был разработчиком в течение 15 лет. Silverlight был одним из моих самых больших ожогов. Я все еще думаю, что это отличная концепция, если бы Iphone и зажигательный огонь Амазонки кусали его ... но он никогда не становился всеобъемлющим ВЕЗДЕ, который обещали Windows. Похоже, что вещи вернулись обратно в HTML и HTML5, поэтому я стремлюсь возродить знания HTML и MVC. Спасибо за чувство ожога со мной :) Dan P
4

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

Бритва не вещь Visual Studio. Это основная часть инфраструктуры ASP.NET MVC. Microsoft выпускает Razor V2 с ASP.NET MVC4, так что нет, он никуда не денется.
@IrishChieftain, можете ли вы рассказать о том, почему это не поможет решить проблемы с ASP 1.0? Dan P
Razor - это ответ Microsoft на уродливую кузину Spark (?). Веб-формы также не исчезают, но что это доказывает? Я еще не видел ни одного убедительного аргумента в пользу использования Razor, за исключением того факта, что это «последняя» тенденция ». Это открывает двери для тех же спагетти, из которых мы бежали с ASP 1.0
Таким образом, у вас есть направление мысли, если «Бритва» Реализация MSC для MS это, скорее всего, удастся до следующей версии VS? Dan P
Код не принадлежит тому же месту, что и разметка - подумайте о поддержке. Это фундаментальное правило веб-разработки, и я не вижу причин возвращаться к этому ради моды. Пока что я не вижу ни одного веского аргумента в пользу использования Razor.

Похожие вопросы