Проект NVelocity мертв?Есть ли альтернативы?
-
22-08-2019 - |
Вопрос
Я ищу шаблонизатор для .NET / C # для создания уведомлений по электронной почте в моем приложении.Я читал о NVelocity в прошлом и думаю, что это подойдет моим потребностям, но похоже, что этот проект мертв.
Порекомендовали бы вы использовать для этой цели NVelocity или можете предложить какие-либо альтернативы?
Примечание. Я нашел и другие механизмы создания шаблонов, но в основном это «механизмы просмотра» для ASP.NET MVC (Brail, NHaml и т. д.).Но я думаю, что это не то, что я ищу.
Решение
Проект Castle является ответвлением проекта и поддерживает его, и последняя версия 1.1.1 была выпущена 10 декабря 2010 г. Более подробную информацию можно найти на сайт Castle Projects NVelocity . Они также внесли в него ряд улучшений, подробности о которых можно найти на их улучшения NVelocity . Проект выглядит так, будто он мертв, и в MonoRail 3 его заменил Castle Blade, основанный на Razor.
Если вы ищете альтернативу, я бы посоветовал Механизм просмотра Razor из ASP.Net MVC3 или Spark View Engine .
Проект с открытым исходным кодом RazorEngine позволяет использовать механизм Razor View вне ASP.Net MVC. или веб-страницы, чтобы вы могли использовать его для создания шаблонных писем.
Другие советы
Вы можете использовать brail или nhaml автономно для создания электронных писем в формате HTML.
Ядро nhaml (не уверен насчет brail ??) не имеет ссылок на MVC или ASP.
Я использовал nhaml для создания документов XPS для печати и создания отчетов из приложения win forms.
Если это должен быть текст, возможно, http://www.stringtemplate.org/
И вот аналогичный вопрос Как использовать Brail в качестве автономного механизма создания шаблонов общего назначения (например, NVelocity)?
Я не вижу причин не использовать NVelocity (вилка проекта Castle).Он стабилен, и ваши конкретные потребности (шаблоны электронной почты), вероятно, не так сложны, как потребности других проектов, использующих NVelocity, поэтому не следует ожидать никаких проблем.
Есть проект на Codeplex.
http://www.codeplex.com/NVelocity
Описание проекта: NVelocity - это порт очень популярного механизма шаблонов Java с открытым исходным кодом. каркас, скорость 1.6. NVelocity - это чистая библиотека .Net, написанная на C #, которая в настоящее время предназначена для Framework версии 3.5.
Первоначально зарегистрированный исходный код выглядит прямо из svn.castleproject.org.
Человек, создавший проект CodePlex (имя пользователя: TerryLiang), также создал еще в августе из nLucene.Для этого проекта у него есть с тех пор сделал около 50 проверок, так что, возможно, он планирует серьезная работа над этим проектом.
В NVelocity нет ничего плохого, за исключением того, что трудно найти самую последнюю версию проекта.Google обычно показывает старую ссылку sourceforge как первое попадание, а ссылка codeplex является следующей по популярности.Как сказал Первез Чоудхури, его можно получить из замка.В работе мы используем версию Castle от NVelocity, и это здорово.
Есть еще один вариант, который появился после того, как этот вопрос был впервые задан, - это Microsoft T4.Большинство людей думают о T4 как о генераторе предварительной компиляции, поскольку именно так он был в первом выпуске, но на самом деле теперь вы можете использовать его для генерации класса генератора и динамической генерации во время выполнения.Он называется предварительно обработанным шаблоном T4, и вы можете прочитать о нем здесь .Преимущество в том, что он уже встроен в Visual Studio, поэтому вам не нужно делать ничего особенного, чтобы начать работу.
Поскольку NVelocity, похоже, умер (снова), я бы предложил DotLiquid .Пока не могу сказать много, так как я все еще оцениваю его, но он определенно выглядит многообещающим (и создается как библиотека MonoTouch / MonoDroid, что меня беспокоит).
ОБНОВЛЕНИЕ [11 июня 2012 г.]
Ограничение наличия "безопасных" классов / коллекций в качестве моделей может быть основным источником головной боли.При оценке этого движка вы можете начать с этого момента.
Я согласен с Саймоном; http://www.stringtemplate.org/ превосходен, очень хорошо спроектирован и активно поддерживается.
Я не могу проголосовать за Сорина за DotLiquid , поэтому просто хочу добавить свой комментарий - похоже, это отличная платформаактивно развивается.
И с функциями, которые они имеют в основной версии (а не в выпущенной DLL), вы можете использовать pocos без необходимости наследовать от какого-либо базового класса, если вы зарегистрируете их следующим образом:
родовое словои это решило головную боль, о которой говорил Сорин.
StringTemplate - тоже отличная вещь, но слишком строгая и ограничивающая, шаблоны - это слишком чистые представления, и использовать их непрактично ...
Вы можете использовать исходную (и часто обновляемую) версию Velocity для Java в .Net, используя IKVM для преобразования ее в сборку.Я успешно использовал скорость для генерации кода под .Net.Вы также можете взглянуть на StringTemplate.Существуют версии StringTemplate для Java и C #.Вы можете найти краткое мини-руководство по использованию Velocity в .Net здесь .Однако я предлагаю внимательно изучить StringTemplate , поскольку я считаю, что это более чистый шаблонизатор (янедавно обращенный).
Я бы рекомендовал использовать XSLT для создания шаблонов.Да, для изучения технологии требуется немного больше времени, но тогда у вас есть гораздо более гибкое шаблонное решение, чем что-либо еще.