Razor/CSHTML - Любая польза от того, что у нас есть?

Любой, кто использует новую страницу страниц CSHTML, обнаруживает, что предпочитает этот новый синтаксис механизма просмотра поверх существующего механизма просмотра по умолчанию ASP.NET MVC или над веб-формами, и если да, то почему? Как насчет CSHTML дает вам преимущество над MVC или веб-формами, или наоборот?

Просто любопытно услышать, как люди берут на себя это.

Ответ 1

Одно из преимуществ заключается в том, что представления Razor могут отображаться внутри модульных тестов, это было непросто с предыдущим рендерингом ASP.Net.

Из объявление ScottGu это указано как одна из целей дизайна:

Единичное тестирование: Новая версия механизма представления будет поддерживать возможность представлений unit test (без использования контроллера или веб-сервера и может быть размещена в любом проекте unit test - никаких специальных требуется домен приложения).

Ответ 2

Мнение разработчиков Microsoft

Я работал над основной командой для веб-сайта MSDN. Теперь я использую бритву С# для сайтов электронной коммерции с моей командой разработчиков, и мы фокусируемся на переднем конце jQuery с бэкдровыми страницами back end С# и базой данных LINQ-Entity, чтобы страницы составляли 1-2 миллисекунды времени ответа даже на вложенных циклах с запросами и не кэширование страниц. Мы не используем MVC, просто ASP.NET с бритвенными страницами, сопоставленными с модулем URL Rewrite для IIS 7, ни ASPX-страницами, ни ViewState, ни программированием на стороне сервера вообще. У него нет дополнительных (ненужных) слоев. MVC помещает в конструкцию кода для вызова regex. Меньше для нас больше. Его все скудное и среднее, но я предоставляю реквизиты MVC для его тестируемости, но все это.

Страницы бритвы не имеют жизненного цикла событий, таких как страницы ASPX. Его просто рендеринг как одна запрошенная страница. С# - такой замечательный язык, и Razor отлично подходит для того, чтобы позволить ему выполнять свою работу. Анонимная типизация с помощью дженериков и linq упрощает жизнь с помощью С# и бритвенных страниц. Использование страниц Razor поможет вам думать и кодировать светлее.

Одним из недостатков Razor и MVC является отсутствие PersState-подобной настойчивости. Мне нужно было реализовать решение для этого, поэтому в итоге я написал плагин jQuery для этого здесь → http://www.jasonsebring.com/dumbFormState, который является автономным хранилищем HTML 5 поддерживаемый плагин для состояния формы, который теперь работает во всех основных браузерах. Это просто для состояния формы в настоящее время, но вы можете использовать window.sessionStorage или window.localStorage очень просто для хранения любого состояния через обратные вызовы или даже запросы страницы, я просто потрудился сделать его автосохранением и импровизировать его на основе URL-адреса и индекса формы вам не нужно об этом думать.

Ответ 3

  • Все кодируется по умолчанию!!! Это довольно просто.

  • Декларативные помощники могут быть скомпилированы, поэтому вам не нужно ничего делать, чтобы делиться ими. Я думаю, что они в какой-то мере заменит .ascx. Вы должны перепрыгнуть через некоторые обручи, чтобы использовать элемент управления .ascx в другом проекте.

  • Вы можете сделать требуемый раздел, который будет приятным.

Ответ 4

Самое большое преимущество в том, что код более краткий. Редактор VS также будет иметь поддержку IntelliSense, которой не обладают некоторые другие механизмы просмотра.

Декларативные HTML-помощники также выглядят довольно круто, так как HTML-помощники в коде С# напоминают мне настраиваемые элементы управления в ASP.NET. Я думаю, что они взяли страницу из частичных, но с встроенным кодом.

Итак, некоторые определенные преимущества над движком просмотра asp.net.

В отличие от механизма просмотра, такого как искра, хотя:

Искра еще более кратка, вы можете сохранить if и loops внутри самого тега html. Разметка все еще кажется мне более естественной.

Вы можете скорректировать частичные части так, как вы будете делать декларативный помощник, вы просто передадите переменные частичным, и у вас будет одно и то же. Это было вокруг с искрами довольно долго.