Me he dado cuenta de Scott Guthrie está empezando a hablar de la maquinilla de afeitar un poco justo en su blog, pero yo no estoy tan seguro de que es una buena opción para mi estilo.
De acuerdo, es un estilo bastante desconocido para alguien que está bastante acostumbrado a un tipo "estándar" de marcado ASP.Net (marcadores de posición de contenido y código en línea), pero me parece que hay muchas páginas adicionales para administrar y un marcado menos claro.
¿Cuáles son los sentimientos de otras personas al respecto? ¿Es algo que cree que debería considerarse seriamente al crear un andamio de nuevas páginas MVC o simplemente está tratando de resolver un problema que no existe?
asp.net-mvc
syntax
markup
razor
asp.net-mvc-3
Phil.Wheeler
fuente
fuente
Respuestas:
[Descargo de responsabilidad: soy uno de los desarrolladores de Microsoft en MVC y Razor, por lo que podría ser un poco parcial :)]
Diseñamos Razor para que sea un lenguaje de plantillas conciso que utiliza solo la cantidad mínima necesaria de caracteres de control. Yo diría que gran parte de sus puntos de vista se pueden expresar con menos caracteres que el mismo código utilizando la sintaxis "tradicional" de WebForms.
Por ejemplo, el siguiente fragmento de código en sintaxis ASPX:
<% if(someCondition) { %> <ol> <% foreach(var item in Model) { %> <li><%: item.ToString() %></li> <% } %> </ol> <% } %>
Se puede expresar de la siguiente manera en Razor:
@if(someCondition) { <ol> @foreach(var item in Model) { <li>@item.ToString()</li> } </ol> }
Mientras que la versión ASPX tiene 21 caracteres de transición (
<%
y%>
), la versión Razor tiene solo tres (@
)Diría que las ventajas de Razor son las siguientes:
Los conceptos relacionados con la página también se asignan fácilmente a lo que tiene en ASPX
@functions { ... }
bloques en lugar de<script runat="server"> ... </script>
Además, Razor tiene una serie de conceptos útiles que yo diría que son mejores que los que están disponibles en ASPX:
@helper
funciones para la creación realmente fácil de funciones que emiten marcado@model
palabra clave para especificar el tipo de modelo de su vista sin tener que escribir una<%@ Page ...
directiva con el nombre completo de la claseMe gustaría pensar que hemos abordado un problema real, que es permitirle escribir más fácilmente vistas concisas y que cumplan con los estándares y, al mismo tiempo, proporcionarle formas de refactorizar el código común.
Por supuesto, no todo el mundo preferirá la sintaxis, por lo que también apoyamos completamente el motor de visualización ASPX. Además, puede consultar Spark y NHaml, que son dos motores de visualización de terceros que disfrutan de un seguimiento significativo de la comunidad. La siguiente publicación de blog tiene una buena comparación de las diferentes ofertas: http://blogs.msdn.com/b/coding4fun/archive/2010/10/04/10070953.aspx
fuente
<a href="mailto:[email protected]">
?@@
Personalmente, aprecio mucho la reducción en la cantidad de caracteres de escape que se utilizan. El uso se
<% %>
vuelve muy tedioso en comparación con@{}
y no es tan atractivo sintácticamente.Además, escribir una definición completa para el código subyacente y la página se simplifica a una sola
@model model
.Como también señaló Marcind, no tener que incluir siempre
runat=server
es muy agradable también.En general, realmente aprecio el uso del motor Razor y creo que no solo me facilita el desarrollo de las cosas, sino que también hace que el código sea más fácil de leer.
fuente