88 votes

Syntaxe Razor fournit-il un avantage convaincant dans le balisage de l’interface utilisateur ?

Je remarque Scott Guthrie est de commencer à mentionner Rasoir un peu juste sur son blog, mais je ne suis pas si sûr que c'est un bon ajustement pour mon style.

Accordé, il est assez peu familier de style pour quelqu'un qui est assez utilisé pour "standard", sorte de ASP.Net le balisage de contenu (les détenteurs de place et de code en ligne), mais il se sent juste comme beaucoup de pages supplémentaires à gérer et moins claire de balisage pour moi.

Quelles sont les autres les sentiments des peuples? Est-ce quelque chose que vous croyez doit être sérieusement pris en considération lors de l'échafaudage nouveau MVC pages ou est-ce juste pour essayer de résoudre un problème qui n'existe pas?

153voto

marcind Points 38002

[Disclaimer: je suis l'un des développeurs de Microsoft sur MVC et Rasoir, donc j'ai peut-être un peu biaisée :)]

Nous avons conçu de Rasoir pour être concis création de modèles de langage qui utilise uniquement le minimum de quantité nécessaire de caractères de contrôle. Je dirais qu'une grande partie de vos points de vue peuvent être exprimés avec moins de caractères que le même code à l'aide de la "traditionnelle" WebForms de la syntaxe.

Par exemple, l'extrait de code suivant dans ASPX syntaxe:

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

Peut être exprimée comme suit dans le Rasoir:

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

Alors que le ASPX version a 21 de transition de caractères ( <% et %>), le Rasoir version a seulement trois (@)

Je dirais que les avantages de Rasoir sont comme suit:

  1. Concis de la syntaxe, qui est très similaire à la façon dont vous écrivez régulièrement des code C# (consultez le blog de Phil Haack comparant Asxp avec la syntaxe Razor: http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx)
  2. Le codage HTML automatique de sortie (ce qui permet de vous protéger contre des attaques par injection html)
  3. Intégré (mais pas à 100%) la validation de votre balisage qui permet d'éviter les déséquilibrée tags

La page des concepts liés à la carte facilement à partir de ce que vous avez à ASPX

  • Comme vous pouvez le voir le code en ligne est encore permis
  • Sections (qui peut être en option) sont équivalents aux espaces réservés de contenu
  • Mise en page des pages au lieu de pages Maîtres
  • Les notions de plein et une vue partielle sont les mêmes
  • @functions { ... } blocs au lieu de <script runat="server"> ... </script>

En outre Rasoir a un certain nombre de concepts utiles que je dirais mieux que ce qui est disponible dans ASPX:

  • @helper fonctions pour faciliter la création de fonctions qui émettent de balisage
  • @model - clé pour la spécification de votre point de vue du type de modèle sans avoir à écrire une <%@ Page ... directive avec le nom complet de la classe

J'aimerais penser que nous avons abordé un problème réel, qui est de vous permettre de plus facilement écrire concis et conforme aux normes de vues, tandis que dans le même temps vous fournir les moyens de refactoriser le code commun.

Bien sûr, pas tout le monde préfère la syntaxe qui est pourquoi nous sommes aussi de soutenir pleinement le ASPX moteur d'affichage. En outre, vous pouvez vérifier l'Étincelle et l'NHaml, qui sont deux de la 3e partie de la vue des moteurs qui jouissent d'une importante communauté suivantes. Le blog suivant a une bonne comparaison des différentes offres: http://blogs.msdn.com/b/coding4fun/archive/2010/10/04/10070953.aspx

3voto

Travis J Points 28588

Personnellement, j'apprécie vraiment la réduction dans le nombre de caractères d'échappement sont utilisés. À l'aide de <% %> devient très pénible quand comparé à d' @{} et n'est pas aussi attrayant du point de vue syntaxique.

De plus, l'écriture d'un ensemble de définition dans le code-behind et la page est simplifié à un seul @model model.

Comme noté par marcind, de ne pas avoir à toujours inclure runat=server est très belle aussi.

Dans l'ensemble, j'apprécie vraiment l'aide du moteur de Rasoir et de trouver non seulement rend les choses plus facile pour moi de se développer, mais aussi rend le code plus facile à lire.

2voto

George K Points 511

Vous pouvez essayer ce convertisseur. Pour plus d’informations, consultez ce blog.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X