.net NVelocity项目已经结束了吗?还有其他选择吗?

.net NVelocity项目已经结束了吗?还有其他选择吗?,.net,templates,template-engine,nvelocity,.net,Templates,Template Engine,Nvelocity,我正在寻找.NET/C的模板引擎,以便在我的应用程序中生成电子邮件通知。我过去读过,认为它能满足我的需要,但这个项目似乎已经死了 您是否仍然建议为此使用NVelocity,或者您是否可以提出任何替代方案 注意:我发现了一些其他的模板引擎,但这些大多是ASP.NETMVC的“视图引擎”(Brail、NHaml等)。但我认为这些并不是我想要的。Castle项目将该项目分为两部分,并一直在维护它,最近的版本是2010年12月10日发布的1.1.1。有关更多详细信息,请访问。他们还对其进行了一些改进,详

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

您是否仍然建议为此使用NVelocity,或者您是否可以提出任何替代方案


注意:我发现了一些其他的模板引擎,但这些大多是ASP.NETMVC的“视图引擎”(Brail、NHaml等)。但我认为这些并不是我想要的。

Castle项目将该项目分为两部分,并一直在维护它,最近的版本是2010年12月10日发布的1.1.1。有关更多详细信息,请访问。他们还对其进行了一些改进,详情见第页。该项目现在看起来像是死了,在MonoRail 3中,它已经被基于Razor的Castle Blade所取代

如果您正在寻找替代方案,那么我建议使用ASP.NETMVC3或


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

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

你可以使用brail或nhaml standalone生成html电子邮件

nhaml的核心(不确定brail???)没有对MVC或ASP的引用

我使用nhaml生成XPS文档,以便从win forms应用程序打印和报告

如果必须是文本的话


这里有一个类似的问题

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

我不认为有理由不使用NVelocity(Castle项目fork)。它是稳定的,并且您的特定需求(电子邮件模板)可能不像其他使用NVelocity的项目中的需求那样复杂,因此您不应该期望出现任何问题

codeplex上有一个项目

项目说明: NVelocity是一个非常合适的开源java模板引擎的端口 框架,速度1.6。 NVelocity是一个纯.Net库,用C#编写,目前的目标是 框架版本3.5

签入的初始源代码似乎是直接从 svn.castleproject.org

创建CodePlex项目的人(用户名:TerryLiang)也是 早在八月份就从nLucene创建了一个。对于那个项目,他有 从那以后,他大约签了50张支票,所以也许他正计划签一些
在那个项目上认真工作。

我同意西蒙的观点;非常好,设计非常好,并且正在积极维护。

NVelocity没有任何问题,只是很难找到项目的最新版本。谷歌通常第一次点击的是旧的sourceforge链接,其次是codeplex链接。正如佩尔韦兹·乔杜里提到的那样,从城堡里得到它。我们在工作中使用城堡版的NVelocity,这很好


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

我建议,由于NVelocity似乎已经(再次)消亡了。由于我还在评估它,现在还不能说太多,但它看起来确实很有希望(并且为我所关心的构建了MonoTouch/MonoDroid库)

更新[2012年6月11日]

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

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

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

foreach (var type in {Assembly}.GetTypes())
    Template.RegisterSafeType(type, type.GetProperties().Select(p => p.Name).ToArray());
这就解决了索林提到的难题


StringTemplate也是一个很好的东西,但是太严格和限制,模板太纯,使用起来很实际…

Castle在2010年12月发布了一个NVelocity版本。我正在使用ASP.NET 2.0,需要一个模板库。我应该只使用原始的
NVelocity
,还是有一个与ASP.NET 2.0兼容的好选择(不是MVC 2!)。您好,@Earlz它还没有死,我在21天前就看到了变化。我更新了链接。我可以看到NVelocity似乎是基于比v1.6旧的引擎版本的!它不支持像“和”这样的文本操作符。这个回复列出了使用a的利弊,在同一个问题中,我看到前面的站点包含有害程序!如果我输入,我看到没有找到“NVelocity”项目,实际上,NVelocity有一些问题,因为最新版本的NVelocity只设置了大约v1.5的Velocity功能,这意味着它不支持诸如“and”而不是“&&&”和“or”之类的文本运算符