Вопрос

Я заметил Скотт Гутри, начинает упомянуть бритву а. ярмарка В своем блоге, но я просто не уверен, что это хорошо подходит для моего стиля.

Предоставлено, это довольно незнакомый стиль для тех, кто довольно привык к «стандартному» разметку ASP.NET (держатели места содержимого и встроенный код), но это просто нравится много дополнительных страниц для управления и менее четкой разметки для меня.

Какие чувства других народов на это? Это то, что вы верите, должны быть серьезно рассмотрены, когда леса новые страницы MVC или просто пытаются решить проблему, которая не существует?

Это было полезно?

Решение

Отказ от ответственности: Я один из разработчиков Microsoft на MVC и бритве, поэтому я мог бы быть немного предвзятым :)

Мы разработали бритву быть краткому шаблонным языком, который использует только минимальное необходимое количество контрольных символов. Я бы сказал, что большие части ваших представлений могут быть выражены с меньшим количеством персонажей, чем тот же код, используя «традиционный» синтаксис WebForms.

Например, следующий фрагмент кода в синтаксисе ASPX:

<% if(someCondition) { %>
  <ol>
  <% foreach(var item in Model) { %>
     <li><%: item.ToString() %></li>
  <% } %>
  </ol>
<% } %>

Может быть выражено следующим образом в бритве:

@if(someCondition) {
   <ol>
   @foreach(var item in Model) {
      <li>@item.ToString()</li>
   }
   </ol>
}

В то время как версия ASPX имеет 21 переходных символов ( <% а также %>), версия бритвы имеет только три (@)

Я бы сказал, что преимущества бритвы выглядят следующим образом:

  1. Краткий синтаксис, который очень похож на то, как вы пишете обычный код C # (проверьте следующую недавнюю запись в блоге Phil Haack, сравнивая ASXP с синтаксисом бритвы: http://haacked.com/Archive/2011/01/06/razor-syntax-quick-reference.aspx.)
  2. Автоматическое HTML кодирование вывода (которое помогает защитить вас от HTML-инъекционных атак)
  3. Встроенный (хотя не на 100%) Валидация вашей разметки, которая помогает избежать несбалансированных тегов

Концепции, связанные с страницей также легко отображаются от того, что у вас есть в ASPX

  • Как вы можете видеть, что встроенный код все еще допускается
  • Разделы (которые могут быть необязательными) эквивалентны постоянным заполнителям
  • Складские страницы вместо главных страниц
  • Концепции полных и частичных взглядов одинаковы
  • @functions { ... } блоки вместо <script runat="server"> ... </script>

Кроме того, Razor имеет ряд полезных концепций, которые я бы сказал, лучше, чем то, что доступно в ASPX:

  • @helper Функции для действительно легкого создания функций, которые выделяют разметку
  • @model Ключевое слово для указания типа модели вашего представления без необходимости написать <%@ Page ... Директива с полным именем класса

Я хотел бы подумать, что мы взяли на себя реальную проблему, которая заключается в том, чтобы позволить вам легче писать краткие и стандарты, соответствующие стандартам представления, одновременно обеспечивая способы рефакторов Common Code.

Конечно, не каждый предпочтет синтаксис, поэтому мы также полностью поддерживаем двигатель View ASPX. Кроме того, вы можете проверить искру и NHAML, которые являются двумя тремя сторонниками двигателей просмотра, которые пользуются значительным сообществом. Следующий пост блога имеет хорошее сравнение различных предложений: http://blogs.msdn.com/b/coding4fun/archive/2010/10/04/10070953.aspx.

Другие советы

Лично я очень ценю уменьшение того, сколько используются escape символов. С использованием <% %> становится очень утомительным по сравнению с @{} и не так, как синтаксически привлекательный.

Кроме того, написание целого определения для кодона и страницы упрощена до одного @model model.

Как также отметил Marcind, не должен всегда включать runat=server очень мило и.

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

Можешь попробовать Этот преобразователь. Отказ Для получения дополнительной информации о данных этот блог пост.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top