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. Разметка все еще кажется мне более естественной.
Вы можете скорректировать частичные части так, как вы будете делать декларативный помощник, вы просто передадите переменные частичным, и у вас будет одно и то же. Это было вокруг с искрами довольно долго.