Нужна помощь, чтобы различать WebMatrix, веб-страницы ASP.NET и синтаксис Razor.

Большая часть документации для нового механизма представления Razor находится в контексте WebMatrix и «веб-страниц» ASP.NET. Даже в самой библиотеке MSDN статья, которая кажется (мне) главной справочной страницей для большей части документации Razor (Веб-страницы ASP.NET с синтаксисом Razor) неотъемлемо связаны с веб-страницами ASP.NET и находятся в ветви дерева документации под названием "Microsoft ВебМатрица".

Однако из других вещей, которые я прочитал, я понял, что синтаксис Razor также доступен для ASP.NET MVC 3, который, похоже, имеет очень мало общего с веб-страницами ASP.NET.

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

Поэтому я ищу подробное руководство, которое позволит мне точно понять, какие части того, что я изучаю, являются частью синтаксиса Razor, а какие — частью «веб-страниц» ASP.NET.

Также мне нужно уточнить, есть ли какое-либо различие между веб-страницами WebMatrix и ASP.NET. Я понимаю, что WebMatrix основан на «Веб-страницах», но неясно, является ли часть того, что я изучаю, частью WebMatrix, или (как я подозреваю) WebMatrix — это просто IDE для «Веб-страниц», с ничего особенного не добавил, кроме пользовательского интерфейса.

Может ли кто-нибудь внести ясность в эти области, пожалуйста?

(Кстати, я что-то пропустил (еще), или «Веб-страницы» — самое запутанное название, которое они могли придумать для этой новой системы?)


person Neville Cook    schedule 25.02.2011    source источник


Ответы (2)


Да, ASP.NET WebPages — сбивающее с толку название. Мы старались, но не смогли придумать ничего лучше. Извини :)

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

Синтаксис Razor в значительной степени сводится к символу @, нескольким ключевым словам (таким как @helper, @inherits, @section) и умному анализу файла Razor для определения переходов между кодом и разметкой. Все остальное — это либо стандартный код C# (ifs и fors), либо разметка, либо библиотеки и утилиты, предоставляемые инфраструктурой WebPages.

Теперь Razor и веб-страницы не полностью разделены, и между ними есть встроенные связи и соглашения, благодаря которым все работает вместе. Например, @section — это ключевое слово Razor. Синтаксический анализатор Razor преобразует его в код, вызывающий метод платформы WebPages DefineSection, чтобы позже на странице макета можно было вызвать @RenderSection.

Использование Razor в MVC зависит от платформы WebPages. В частности, MVC расширяет классы, представляющие страницы из WebPages, так что такие вещи, как RenderSection, все еще работают в MVC. Единственное отличие состоит в том, что MVC имеет собственный набор утилит и библиотек, разработанных для парадигмы программирования MVC. Например, вместо вызова метода Href из веб-страниц вы должны вызвать Url.Content в MVC.

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

person marcind    schedule 26.02.2011
comment
Спасибо, марсинд. Из вашего объяснения, вашей ссылки и вложенных ссылок, на которые она ссылается, после большого чтения я теперь лучше понимаю, как все части связаны друг с другом. - person Neville Cook; 26.02.2011

Чтобы расширить объяснение Марсинда, Razor был разработан для веб-страниц. Команда MVC подумала, что это также станет отличным View Engine. Существует только одна версия «синтаксиса» Razor, поэтому MVC3 зависит от DLL-библиотек WebPages.

О, и я думаю, что у парней закончились идеи, когда они назвали и «веб-страницы», и «веб-матрицу». Интересно, заметил ли Amazon недавнее увеличение заказов на книги Web Matrix 8-летней давности?

person Mike Brind    schedule 26.02.2011