代码之家  ›  专栏  ›  技术社区  ›  M4N

Nvelocity项目结束了吗?有其他选择吗?

  •  27
  • M4N  · 技术社区  · 16 年前

    我正在为.NET/C寻找模板引擎,以便在我的应用程序中生成电子邮件通知。我读到有关 NVelocity 在过去,我认为它可以满足我的需要,但似乎这个项目已经死了。

    您是否仍然建议使用Nvelocity来实现这一目的,或者您是否可以提出任何替代方案?

    注意:我发现了一些其他模板化引擎,但这些大多是ASP.NET MVC(brail、nhaml等)的“视图引擎”。但我想这些不是我要找的。

    10 回复  |  直到 6 年前
        1
  •  27
  •   DaFi4    6 年前

    Castle项目是该项目的分支,一直在维护它,最近一次发布的版本是2010年12月10日的1.1.1。有关更多详细信息,请访问 the Castle Projects NVelocity site . 他们也对它做了一些改进,细节可以找到 on their NVelocity improvements 页。该项目看起来像是现在死了,在单轨3,它已被城堡刀片取代,这是基于剃刀。

    如果你正在寻找替代方案,那么我建议 Razor view engine 来自ASP.NET MVC3或 Spark View Engine .

    开源项目 RazorEngine 允许您在ASP.NET MVC或网页之外使用Razor View引擎,以便可以使用它生成模板化电子邮件。

        2
  •  3
  •   Community CDub    8 年前

    您可以使用brail或nhaml独立生成HTML电子邮件。

    NHAML的核心(不确定盲文是什么??)没有对MVC或ASP的引用。

    我使用nhaml生成XPS文档,以便从Win表单应用程序打印和报告。

    如果必须是文本,也许 http://www.stringtemplate.org/

    还有一个类似的问题 How to use Brail as a stand-alone general purpose templating engine (like NVelocity)?

        3
  •  3
  •   Igor Brejc    16 年前

    我看不出有理由不使用Nvelocity(城堡项目fork)。它是稳定的,您的特定需求(电子邮件模板)可能不像其他使用Nvelocity的项目那样复杂,所以您不应该期待任何问题。

        4
  •  3
  •   Peter Starbek    15 年前

    有一个关于codeplex的项目。

    http://www.codeplex.com/NVelocity

    项目说明: nValice是非常开放源码的Java模板工程的一个端口。 框架,速度1.6。 Nvelocity是一个用C语言编写的纯.NET库,目前它的目标是 框架版本3.5。

    签入的初始源代码似乎是直接来自 高级管理人员:castleproject.org.

    创建codeplex项目的人(用户名:terryliang)也 八月份从Nlucene创建了一个。对于那个项目,他 从那以后大约有50次登记,所以也许他打算做一些 在那个项目上认真工作。

        5
  •  3
  •   mattmc3    14 年前

    Nvelocity没有什么问题,只是很难找到最新版本的项目。Google通常会将旧的sourceforge链接作为第一个点击,codeplex链接是第二个最常见的链接。正如佩尔韦兹·乔杜里所提到的,从城堡里得到它的地方。我们在工作中使用城堡版的女私奔,这很好。

    自从这个问题被第一次提出以来,还有一个选择出现了,那就是微软的T4。大多数人认为T4是一个预编译生成器,因为它是第一个版本,但实际上您现在可以使用它来生成一个生成器类并在运行时进行动态生成。它被称为预处理的t4模板,您可以阅读更多关于它的信息。 here . 优点是它已经内置在Visual Studio中,所以您不需要做任何特殊的事情就可以开始工作。

        6
  •  3
  •   Sorin Comanescu    13 年前

    由于女性私欲似乎再次死亡,我建议 DotLiquid . 目前还不能说太多,因为我仍在评估它,但它确实看起来很有前途(并为我所关心的建立了一个单触/单机器人库)。

    更新 〔11君2012〕

    将“安全”类/集合作为模型的约束可能是头疼的主要原因。在评估此引擎时,您可能希望从这一点开始。

        7
  •  2
  •   Robert    15 年前

    我同意西蒙的观点; http://www.stringtemplate.org/ 非常好,设计非常好,并且正在积极维护。

        8
  •  2
  •   Klotin    13 年前

    我不能支持索林 DotLiquid ,所以只想添加我的评论-这似乎是一个正在积极开发的伟大平台。

    通过主干版本(而不是发布的dll tho)中的特性,如果您以这种方式注册它们,您可以使用POCO而无需继承任何基类:

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

    这解决了索林提到的头痛。

    StringTemplate也是一件很好的事情,但是太严格和限制了,模板太纯,使用起来很实际…

        9
  •  1
  •   Todd Stout    16 年前

    可以通过使用IKVM将原始的(经常更新的)Java版本的速度在.NET中转换成程序集。我已经成功地用Velocity在.NET下生成了代码。您还可以查看StringTemplate。StrugType有Java和C版本。你可以找到一个关于在.NET中使用速度的快速迷你教程。 here . 我建议仔细看看 StringTemplate 但是,我认为它是一个更干净的模板引擎(我是最近的转换者)。

        10
  •  0
  •   XOR    16 年前

    我建议使用XSLT进行模板化。是的,它需要更多的时间来学习这项技术,但是这样一来,您就拥有了比其他任何东西都更灵活的模板解决方案。

    推荐文章