.net - RazorEngine vs RazorTemplates vs RazorMachine
(3)
¿Alguien puede explicar cuáles son las diferencias, ventajas y desventajas entre
Necesito elegir uno para la generación de correo electrónico. Los requisitos son bastante habituales: rápidos, fáciles de usar. Parece que todos ellos tienen todas las funciones que necesito, pero como soy un novato de Razor, no tengo muy claro cuál es mejor.
Gracias.
He intentado las 3 bibliotecas yo mismo y encontré varias diferencias.
- RazorEngine , el más sencillo y funciona mejor entre todos ellos, admite el almacenamiento en caché de forma predeterminada.
- RazorTemplates : no admite algunas directivas de Razor (por ejemplo, @model) y utiliza muchos tipos
dynamic
. Puede utilizar plantillas precompiladas. - RazorMachine : muy impredecible y con un diseño extraño que requiere usar una instancia única global en lugar de una clase estática.
En cuanto a mí, he elegido RazorEngine. También aquí está el código de cómo usar estas bibliotecas:
RazorEngine
string html = Razor.Parse(templateContent, model, templatePath);
RazorTemplates
if (!_templatesCache.ContainsKey(templatePath))
{
var compiledTemplate = Template.Compile(templateContent);
_templatesCache.Add(templatePath, compiledTemplate);
}
string html = _templatesCache[templatePath].Render(model);
Maquinilla de afeitar
private readonly Lazy<RazorMachine> _lazyRazorMachine =
new Lazy<RazorMachine>(() => new RazorMachine());
//...
var rm = _lazyRazorMachine.Value;
string html = rm.ExecuteContent(templateContent, model, null, true).Result;
Y algunas pruebas de rendimiento, probaron cada biblioteca 2 veces en la misma plantilla, todas tienen un rendimiento similar sin una gran diferencia:
RazorEngine - 1731 ms, 0.1 ms
RazorTemplates - 1753 ms, 0.1 ms
RazorMachine - 1608 ms, 0.1 ms
Uso, https://github.com/smsohan/MvcMailer , realmente ayuda a crear correos electrónicos basados en MVC Razor.
Yo uso RazorEngine para la generación de correo electrónico y funciona bien. En cuanto a los otros 2 proyectos, parece que hacen lo mismo como RazorEngine - hosting MS Razor. De todos modos, puede recomendar este último para su propósito.