Closed. This question is opinion-based。它当前不接受答案。












想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。

7年前关闭。



Improve this question




有人可以解释一下两者之间的优缺点吗

RazorEngine

RazorTemplates

RazorMachine

我需要选择一个用于生成电子邮件。要求很常见:快速,易用。似乎它们都具有我需要的所有功能,但是由于我是Razor新手,所以我还不清楚哪个更好。

谢谢。

最佳答案

我自己尝试了所有3个库,发现了一些不同之处。

  • RazorEngine -最简单并且在所有这些工具中效果最好,默认情况下支持缓存。
  • RazorTemplates -不支持某些Razor指令(例如@model),并使用许多dynamic类型。可以使用预编译的模板。
  • RazorMachine -非常不可预测,设计奇怪,需要使用全局单个实例而不是静态类。

  • 对于我来说,我选择了RazorEngine。这也是如何使用这些库的代码:
    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);
    
    Razor 机器
    private readonly Lazy<RazorMachine> _lazyRazorMachine =
        new Lazy<RazorMachine>(() => new RazorMachine());
    //...
    
    var rm = _lazyRazorMachine.Value;
    string html = rm.ExecuteContent(templateContent, model, null, true).Result;
    
    还有一些性能测试,在同一个模板上对每个库进行了2次测试,所有这些测试都具有相似的性能,而没有太大的区别:

    关于.net - RazorEngine vs RazorTemplates vs RazorMachine ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18253822/

    10-12 21:07