Подтвердить что ты не робот

Является ли проект NVelocity мертвым? Есть ли альтернативы?

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

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

Вы можете использовать функцию brail или nhaml для создания html-сообщений электронной почты.

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

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

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

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

Ответ 3

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

Ответ 4

Существует проект на codeplex.

http://www.codeplex.com/NVelocity

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

Исходный код исходного кода, по-видимому, прямо из svn.castleproject.org.

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

Ответ 5

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

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

Ответ 6

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

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

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

Ответ 7

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

Ответ 8

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

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

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

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

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

Ответ 9

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

Ответ 10

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