Вопрос

Я ищу шаблонизатор для .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 для создания шаблонов.Да, для изучения технологии требуется немного больше времени, но тогда у вас есть гораздо более гибкое шаблонное решение, чем что-либо еще.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top