Проект NVelocity мертв? Есть ли альтернативы? - PullRequest
27 голосов
/ 31 марта 2009

Я ищу шаблонизатор для .NET / C # для генерации уведомлений по электронной почте в моем приложении. Я читал о NVelocity в прошлом и думаю, что это будет соответствовать моим потребностям, но кажется, что этот проект мертв.

Вы все еще рекомендовали бы использовать NVelocity для этой цели или можете предложить какие-либо альтернативы?

Примечание. Я обнаружил некоторые другие движки шаблонов, но в основном это "движки представлений" для ASP.NET MVC (Brail, NHaml и т. Д.). Но я думаю, что это не то, что я ищу.

Ответы [ 10 ]

27 голосов
/ 31 марта 2009

Проект Castle разработал и поддерживал его, а последняя версия 1.1.1 была выпущена 10 декабря 2010 года. Более подробную информацию можно найти на сайте на сайте Castle Projects NVelocity . Они также внесли ряд улучшений, подробности о которых можно найти на их странице улучшений NVelocity . Проект выглядит так, как будто он уже мертв, а в MonoRail 3 его заменил Castle Blade, основанный на Razor.

Если вы ищете альтернативу, я бы предложил Razor View Engine из ASP.Net MVC3 или Spark View Engine .

Проект с открытым исходным кодом RazorEngine позволяет использовать механизм Razor View вне ASP.Net MVC или веб-страниц, чтобы вы могли использовать его для создания шаблонных писем.

3 голосов
/ 07 июня 2012

Поскольку NVelocity, кажется, умер (снова), я бы предложил DotLiquid . Пока ничего сказать не могу, так как я все еще оцениваю его, но он выглядит многообещающе (и, как мне кажется, создается как библиотека MonoTouch / MonoDroid).

ОБНОВЛЕНИЕ [11 июня 2012]

Ограничение наличия «безопасных» классов / коллекций в качестве моделей может быть основным источником головной боли. Оценивая этот движок, вы можете начать с этого момента.

3 голосов
/ 29 апреля 2011

В NVelocity нет ничего плохого, кроме того, что трудно найти самую последнюю версию проекта. Google обычно использует старую ссылку на sourceforge в качестве первого попадания, а ссылка на кодовый комплекс является следующей наиболее распространенной. Первом Чудхури упоминал, что его можно получить из Замка. Мы используем версию NVelocity для Castle, и это здорово.

Существует еще один вариант, появившийся за годы, прошедшие с того момента, когда этот вопрос был впервые задан, - это T4 от Microsoft. Большинство людей думают о T4 как о генераторе предварительной компиляции, так как он был первым выпуском, но на самом деле теперь вы можете использовать его для генерации класса генератора и динамического генерирования во время выполнения. Он называется предварительно обработанным шаблоном T4, и вы можете прочитать больше об этом здесь . Преимущество состоит в том, что он уже встроен в Visual Studio, поэтому вам не нужно делать ничего особенного для начала работы.

3 голосов
/ 16 октября 2009

Есть проект на codeplex.

http://www.codeplex.com/NVelocity

Описание проекта: NVelocity - порт очень популярного Java-шаблона с открытым исходным кодом. рамки, скорость 1.6. NVelocity - это чистая библиотека .Net, написанная на C #, которая в настоящее время нацелена Framework Framework 3.5.

Первоначальная регистрация исходного кода, кажется, прямо из svn.castleproject.org.

Лицо, создавшее проект CodePlex (имя пользователя: TerryLiang) также создал еще в августе из nLucene. Для этого проекта он имеет с тех пор сделал около 50 проверок, так что, возможно, он планирует сделать серьезная работа над этим проектом.

3 голосов
/ 26 апреля 2009

Не вижу причин не использовать NVelocity (форк проекта Castle). Он стабилен, и ваши конкретные потребности (шаблоны электронной почты), вероятно, не так сложны, как в других проектах, использующих NVelocity, поэтому не стоит ожидать никаких проблем.

3 голосов
/ 01 апреля 2009

Вы можете использовать автономный браузер brail или nhaml для создания html-писем.

Ядро nhaml (не уверен насчет Брайля ??) не имеет ссылок на MVC или ASP.

Я использовал nhaml для генерации документов XPS для печати и создания отчетов из приложения выигрышных форм.

Если это должен быть текст, возможно http://www.stringtemplate.org/

А вот аналогичный вопрос Как использовать Brail как автономный шаблонизатор общего назначения (например, NVelocity)?

2 голосов
/ 28 июня 2012

Я не могу проголосовать за Сорина за DotLiquid , поэтому просто хочу добавить свой комментарий - похоже, что активно развивается отличная платформа.

И с функциями, которые они имеют в транковой версии (не в выпущенной dll tho), вы можете использовать pocos без необходимости наследования от любого базового класса, если вы зарегистрируете их таким образом:

foreach (var type in {Assembly}.GetTypes())
    Template.RegisterSafeType(type, type.GetProperties().Select(p => p.Name).ToArray());

и это решило головные боли, о которых говорил Сорин.

StringTemplate - это тоже отличная вещь, но слишком строгая и ограничивающая, шаблоны - слишком чистые представления, и использовать их нецелесообразно ...

2 голосов
/ 04 ноября 2009

Я согласен с Саймоном; http://www.stringtemplate.org/ отлично, очень хорошо спроектировано и активно поддерживается.

1 голос
/ 08 апреля 2009

Вы можете использовать исходную (и часто обновляемую) версию Velocity для Java в .Net, используя IKVM для преобразования ее в сборку. Я успешно использовал скорость для генерации кода под .Net. Вы также можете взглянуть на StringTemplate. Существуют версии StringTemplate для Java и C #. Вы можете найти краткий мини-учебник по использованию Velocity в .Net здесь . Тем не менее, я советую внимательно взглянуть на StringTemplate , так как считаю, что это более чистый шаблонный движок (я недавно перешел).

0 голосов
/ 31 марта 2009

Я бы рекомендовал использовать XSLT для шаблонов. Да, для изучения этой технологии требуется немного больше времени, но тогда у вас будет гораздо более гибкое шаблонное решение, чем что-либо еще.

...