El motor de vista es responsable de la creación de HTML a partir de su puntos de vista. Las vistas son generalmente una especie de confusión de HTML y un lenguaje de programación. El patrón detrás de la mayoría de estos se llama two-step view.
Por ejemplo, ASP.NET viene con su propio motor de vista fuera de la caja. Ese es el punto donde las vistas tienen muchas etiquetas como <% %>
y <%: %>
. Utiliza la extensión de archivo .aspx
.
Con ASP.NET MVC3, se agregó otro motor de vista previa, Razor, que tiene una sintaxis más atractiva, p. <div>@Model.UserName</div>
.
La elección del motor de visualización es importante, ya que los juegos de características de los motores de visualización son bastante diferentes. Algunos soportan el renderizado de archivos PDF, por ejemplo; algunos no se pueden usar fuera de un contexto web (esto es cierto para el antiguo motor de visualización ASP.NET), mientras que otros pueden (por ejemplo, Razor). La visualización "fuera de línea" de las vistas es útil cuando desea crear correos electrónicos HTML de la misma manera que construye sus vistas y esos correos electrónicos deben enviarse desde un trabajador en segundo plano en lugar de desde una aplicación web.
Hay una buena comparación de asp.net view engines aquí en SO.
La buena noticia es que puede usar múltiples motores de vistas en paralelo en ASP.NET MVC, aunque no lo recomendaría a menos que sea necesario.
Ya hay algunos puntos de extensión muy agradables en el motor Razor. Por ejemplo, puede proporcionar una clase base de vista personalizada, un concepto potente que facilita agregar una gran cantidad de funcionalidades en el lugar correcto sin tener que meterse con todos los detalles agresivos que tendría que enfrentar de otra manera.
Actualmente elegiría Razor.
¿Puede mostrarme (enviarme un enlace) cómo puedo renderizar ViewEngines sin conexión? – gillyb
@gillyb: su mejor opción es http://razorengine.codeplex.com/, que representa las vistas de Razor fuera de un contexto ASP. – mnemosyn