Нужна помощь в различении WebMatrix, ASP.NET Web Pages и синтаксиса Razor - PullRequest
3 голосов
/ 26 февраля 2011

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

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

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

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

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

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

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

Ответы [ 2 ]

6 голосов
/ 26 февраля 2011

Да, ASP.NET WebPages - это запутанное имя.Мы пытались, но не могли придумать ничего лучшего.Извините:)

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

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

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

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

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

1 голос
/ 26 февраля 2011

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

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

...