2010-07-04 27 views
39

Después de leer Scott Guthrie entrada del blog sobre el nuevo motor de vista Razor para ASP.NET MVC y leyendo esto question comparando los motores de vista disponibles.Motor ASP.NET MVC Razor view

Razor parece resolver la mayoría de los problemas con el motor de vista predeterminado. ¿Qué diferencias de características lo convertirían en una opción atractiva para usted como desarrollador? ¿Qué características le faltan para evitar que lo use?

+4

¿Debería ser esto CW? –

+0

Creo que sí. Pero, hombre, Razor no puede llegar aquí lo suficientemente pronto. –

Respuesta

20

Hay mucho más para ver el motor, excepto el lenguaje de marcado. Algunas características chispa que voy a extrañar:

  • extensiones HTML de escritura usando el mismo lenguaje de marcado, no en C# (macros) - Veo que la maquinilla de afeitar también es compatible con esto, espero que soporta método/parámetros anulan;
  • etiquetas personalizadas (escriba _Tag.spark para usar < Tag/>);
  • variables autogeneradas como varIsFirst, varIndex, etc;
  • formularios de expresión especial (? {} Para atributos condicionales, $! {} Para omitir errores, etc.);
  • buen soporte para diseños maestros/parciales, incluida la posibilidad de especificar en parte parcial que la parte del marcado debe mostrarse solo una vez en el maestro (por ejemplo, incluye script);
  • aún puede tener el marcado WebForms, ideal para compatibilidad y actualización incremental;
  • soporte para usar las comillas "" y '' dentro de la otra (extremadamente útil).

me gusta la sintaxis de chispa para Bucles/IFS más - mezclar HTML < > y C#} {llaves no se ve muy bien - pero eso es puramente una opinión personal.

Existen funciones muy prometedoras en Razor, también, p. plantillas en línea Dado que el creador de Spark fue contratado por Microsoft, creo que existe la esperanza de que Razor sea un motor de visualización bien escrito y muy útil. Por supuesto, no volveré a escribir cientos de mis vistas de Spark con Razor (aunque reescribí docenas de mis vistas de WebForms con Spark). Pero seguro que le daré una mirada seria a Razor; solo lo he averiguado gracias a sus preguntas, y lo que veo ahora parece prometedor. No compite con WebForms, por supuesto (cualquier motor de vista es mejor que WebForms), pero parece una buena opción para un nuevo proyecto ASP.NET MVC, si aún no ha invertido en otro motor de visualización demasiado.

+0

re: 'variables autogeneradas': puede utilizar la muy inteligente clase 'SmartEnumerable' de John Skeet para lograr esto con navajas/formularios web: http://www.yoda.arachsys.com/csharp/miscutil/usage/smartenumerable.html –

4

Obviamente no lo he evaluado en la práctica todavía, pero el hecho de que es más terser que el motor ASPX es la característica más convincente para inducir un cambio. Solo espero que también auto-formatee mejor. El hecho de que sea compatible con intellisense y se entregue con MVC lo convierte en una opción natural para comenzar nuevos proyectos. Voy a darle una buena oportunidad en un proyecto pequeño antes de hacer el cambio. Solo al leer el artículo, no vi nada que no pudiera hacer con él, lo que estoy haciendo actualmente con el motor ASPX.

Actualización: He estado usando Razor durante más de un año y nunca volvería al motor ASPX. La sintaxis parece muy natural y expresiva.

+0

¿Ha considerado usar Spark? Vea la respuesta de queen3 para obtener una lista de características adicionales que proporciona Spark. – Ryan

+1

Desafortunadamente, el soporte de Spark Intellisense no es tan bueno (especialmente en VS2010) y esto puede ser un obstáculo para muchos desarrolladores. Pero el apoyo se está desarrollando, así que con suerte las cosas mejorarán. – queen3

+1

Siento como si necesitara Intellisense en vista de que está haciendo algo demasiado complicado. De acuerdo, el 90% del contenido de mis vistas se ve como '! {Html.EditTemplateFor (x => x.Quantity)}', así que solo necesito conocer algunos métodos clave de ayuda y las propiedades en mi modelo de vista. Creo que la falta de Intellisense realmente me ha ayudado a mantener las cosas simples. – Ryan

0

Además de la apariencia más limpia, la flexibilidad de las secciones de diseño se ve muy bien, y los ayudantes de HTML declarativos parecen muy útiles. Hasta el momento no veo ninguna desventaja en su uso, pero por supuesto tendremos que intentarlo en la práctica.

23

Unidad comprobable: El nuevo motor vista aplicación apoyará la capacidad a las opiniones de pruebas unitarias (sin que requiere un controlador o servidor web, y puede ser alojado en cualquier proyecto de prueba unitaria - ninguna aplicación especial -dominio requerido).

Por fin !!! No puedo creer que tomó casi 8 años para que Microsoft finalmente traiga un motor de vista que lo soporte.

0

Soportes de la maquinilla de afeitar, es decir, foreach cosas. Spark utiliza aquí etiquetas XML.

Por lo tanto, Spark es completamente compatible con el análisis y el análisis de un archivo de vista por procesador XML.

Mabye no es una gran cosa, pero muestra consistencia y extensibilidad.

+0

eso es la parte que me gusta abt spark ... –

15

Para mí hay tres razones de peso:

  1. compilación - vistas Razor pueden ser compilados en un archivo DLL. Por fin conseguimos una adecuada reutilización en proyectos web .NET. Puedo tener un objeto comercial que sepa mostrarse sin tener ese código flotando como archivos .ascx en alguna parte del proyecto web.

  2. Testability - como se compila en una clase, puedo escribir una prueba de unidad y arrojar instancias de objetos falsos para ver si el HTML es correcto.

  3. IntelliSense y la Conciso Sintaxis están bien, pero no las partes más importantes.

+0

¿tiene más información sobre la "compilación" en sus viñetas? Un enlace, tal vez? Gracias por adelantado. – Buildstarted

+0

Sí, se mencionó en los comentarios al artículo de blog de ScottGu sobre Razor que se planificó el soporte para la biblioteca de clases: http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx# 7553475 Cita: "re: presentamos" Razor ": un nuevo motor de visualización para ASP.NET Sábado, 03 de julio de 2010 12:14 PM por ScottGu @Chris, > 1) ¿Se pueden precompilar o incorporar en el ensamblaje como recurso? Sí, esa es una de las cosas que queremos habilitar y que no mencioné en la publicación. Planeamos habilitarlo para agregar estos proyectos a la biblioteca de la clase y compilarlos en ensamblajes. ... ScottGu " – Quango

+0

Ah, no es de extrañar que no lo haya visto ... siempre millones de comentarios en sus publicaciones. :) Gracias – Buildstarted

Cuestiones relacionadas