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

您是否仍建议将NVelocity用于此目的,或者您可以建议其他选择?

注意:我发现了其他一些模板引擎,但这些引擎主要是ASP.NET MVC(Brail,Nhaml等)的“视图”。但是我认为这些不是我想要的。

有帮助吗?

解决方案

这座城堡项目分叉了该项目并一直在维护该项目,最近在2010年12月10日发布了1.1.1版。可以找到更多详细信息 城堡项目nvelocity网站. 。他们还对此做出了许多改进,可以找到其细节 关于他们的效果改善 页。该项目看起来像现在已经死了,在Monorail 3中,它已被基于剃须刀的城堡刀片所取代。

如果您正在寻找替代方案,那么我建议您 剃刀视图引擎 来自ASP.NET MVC3或 火花视图引擎.

开源项目 Razorengine 允许您在ASP.NET MVC或网页外使用剃须刀视图引擎,因此您可以使用它来生成模板的电子邮件。

其他提示

您可以使用Brail或Nhaml独立来生成HTML电子邮件。

NHAML的核心(不确定Brail ??)没有对MVC或ASP的引用。

我已经使用NHAML生成XPS文档,用于从Win表单应用程序打印和报告。

如果必须是文字 http://www.stringtemplate.org/

这是一个类似的问题 如何将Brail用作独立的通用模板引擎(例如Nvelocity)?

我没有看到不使用nvelocity(城堡项目叉)的理由。它是稳定的,您的特定需求(电子邮件模板)可能不像其他使用Nvelocity的项目中的那样复杂,因此您不应该期望任何问题。

Codeplex上有项目。

http://www.codeplex.com/nvelocity

项目描述:NVelocity是非常尖锐的开源Java模板工程框架的端口,速度1.6。 Nvelocity是用C#编写的纯.NET库,目前针对框架版本3.5。

初始源代码检查似乎是直接从svn.castleproject.org出发的。

创建CodePlex项目(用户名:Terryliang)的人也在八月从Nlucene创建了一个。从那时起,他就已经进行了大约50次校验,因此也许他计划在该项目上做一些认真的工作。

Nvelocity没有错,除了很难找到该项目的最新版本。 Google通常将旧的SourceForge链接作为第一个命中,而CodePlex链接是下一个最常见的链接。正如Pervez Choudhury提到的那样,获得它的地方是从城堡中。我们在工作中使用城堡版本的Nvelocity,这很棒。

自这个问题首次提出以来的几年中,还有另一种选择,这是微软的T4。大多数人认为T4是首次发行的预夸张发生器,但实际上您现在可以使用它来生成发电机类并在运行时进行动态生成。它称为预处理的T4模板,您可以阅读更多有关它的信息 这里. 。优点是它已经内置在Visual Studio中,因此您无需做任何特别的事情即可开始。

正如Nvelocity似乎已经死了(再次),我建议 点液. 。目前我仍在评估它,但现在不能说太多,但是它看起来很有希望(并作为我所关注的单调/monodroid库构建)。

更新 2012年6月11日

将“安全”类/集合作为模型的限制可能是头痛的主要来源。评估该引擎时,您可能需要从这一点开始。

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

我不能为索林投票 点液, ,所以只想添加我的评论 - 这似乎是一个正在积极开发的很棒的平台。

凭借它们在中继版本中具有的功能(不在发布的DLL中),您可以使用POCOS,而无需从任何基类中继承,如果您以这种方式注册它们:

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

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

StringTemplate也是一件很棒的事情,但是太严格和限制了,模板太纯净了,并且使用唯一的使用...

您可以通过使用IKVM将其转换为程序集,在.NET中使用.NET中的Java版本的Java版本。我已经成功地使用了速度,以在.NET下进行代码生成。您可能还会查看StringTemplate。 StringTemplate的Java和C#版本。您可以在.net中找到有关使用速度的快速迷你教程 这里. 。我建议仔细看一下 StringTemplate 但是,我认为这是一个更清洁的模板引擎(我是最近的转换)。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top