[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:
- 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)
- Le codage HTML automatique de sortie (ce qui permet de vous protéger contre des attaques par injection html)
- 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