Я знаю, что это старый вопрос, но после поиска лучших альтернатив бритве, я все еще думаю, что ни один из них не быстрее, чем nvelocity.Бритва дает вам интеллигентность и ее легче кодировать.Но nvelocity НАМНОГО быстрее.В приведенном ниже примере вы обнаружите, что бритве требуется 2 секунды для разбора одной строки текста.NVelocity анализирует мгновенно.Я также проверил это с файлами шаблонов, тот же результат.2 секунды для разбора слишком медленно для коммерческого веб-приложения.Поэтому, несмотря на то, что мне нравится бритва гораздо больше, у меня нет выбора, кроме как придерживаться NVelocity.
Я не очень уверен насчет кэширования.Но в случае анализа строк (в отличие от анализа на основе файлов), как в примере ниже, кэширование для бритвы отсутствует.
Простой пример asp.net:
protected void Page_Load(object sender, EventArgs e)
{
string toParseText = "bladiebla $Model.SomeProperty";
dynamic model = new ExpandoObject();
model.SomeProperty = "hello";
string result = Razor.Parse(toParseText, model);
var _templateEngine = new VelocityEngine();
_templateEngine.Init();
var context = new VelocityContext();
context.Put("Model", model);
using (StringWriter writer = new StringWriter())
{
_templateEngine.Evaluate(context, writer, "", toParseText);
string result2 = writer.ToString();
}
}
NuGet:
- установочный пакет RazorEngine
- установочный пакет nvelocity