我正在寻找一个能够生成我的应用程序中的电子邮件通知的 .NET/C# 模板引擎。我以前听说过 NVelocity,认为它符合我的需求,但似乎这个项目已经停止更新了。
你是否仍然推荐使用 NVelocity,或者你能否建议其他替代方案?
注意:我找到了一些其他的模板引擎,但这些大多数是 ASP.NET MVC 的 "视图引擎"(如 Brail、NHaml 等)。但我认为这些并不是我要找的。
我正在寻找一个能够生成我的应用程序中的电子邮件通知的 .NET/C# 模板引擎。我以前听说过 NVelocity,认为它符合我的需求,但似乎这个项目已经停止更新了。
你是否仍然推荐使用 NVelocity,或者你能否建议其他替代方案?
注意:我找到了一些其他的模板引擎,但这些大多数是 ASP.NET MVC 的 "视图引擎"(如 Brail、NHaml 等)。但我认为这些并不是我要找的。
我认为使用NVelocity(Castle项目的分支)没有任何不妥之处。它是稳定的,而且你的具体需求(电子邮件模板)可能并不像其他使用NVelocity的项目那么复杂,因此你不应该期望出现任何问题。
有一个在CodePlex上的项目。
http://www.codeplex.com/NVelocity
项目描述: NVelocity是非常流行的开源Java模板引擎框架Velocity 1.6的移植版。 NVelocity是一个纯粹的.Net库,用C#编写,目前针对Framework版本3.5。
最初的源代码似乎直接来自svn.castleproject.org。
创建CodePlex项目(用户名:TerryLiang)的人也于去年8月创建了nLucene项目。 对于那个项目,他自那时以来已经进行了大约50次代码提交,因此可能他计划在该项目上进行一些重要工作。
由于NVelocity似乎又挂了,我建议使用DotLiquid。目前还在评估中,但它看起来很有前途(并且作为MonoTouch/MonoDroid库构建)。
更新 [2012年6月11日]
拥有“安全”类/集合作为模型的限制可能是一种主要的头痛源。在评估此引擎时,您可能需要从这一点开始。
我不能为DotLiquid的Sorin投赞成票,所以只想添加我的评论——它似乎是一个正在积极开发的优秀平台。
而且,如果您以这种方式注册它们,使用主干版本(而不是发布的dll中)的功能,您可以无需继承任何基类就可以使用pocos:
foreach (var type in {Assembly}.GetTypes())
Template.RegisterSafeType(type, type.GetProperties().Select(p => p.Name).ToArray());
这解决了Sorin提到的问题。
StringTemplate也是一个很好的东西,但太严格和限制性了,模板太过纯净,只能用于视图,实际使用起来并不实用...
你可以使用IKVM将原始(并经常更新的)Java版本的Velocity转换为程序集,从而在.Net中使用它。我已成功地使用这种方式在.Net下进行代码生成。您还可以查看StringTemplate。有java和C#版本的StringTemplate。您可以在此处找到有关在.Net中使用Velocity的快速迷你教程。然而,我建议您仔细研究StringTemplate,因为我认为它是一个更清晰的模板引擎(我最近成为了它的拥趸)。
NVelocity
,还是有一个与ASP.NET 2.0兼容(不是MVC 2!)的好替代品? - Web User