0

我们正在设计一个应用程序,它将生成许多不同类型的文本输出,例如电子邮件、html、sms 等。输出将使用某种模板生成,数据来自数据库。我们的要求包括:

  1. 模板中的基本逻辑/计算字段。例如“ifs”和“for”循环,以及添加税收百分比等内容
  2. 运行时编辑。我们的用户需要能够根据自己的需要调整模板,例如更改样板文本、添加新逻辑等
  3. 多语种。我们需要为当前的文化选择正确的模板。
  4. 文化敏感。例如,日期和货币将根据当前的 ui 文化输出。
  5. 灵活性。我们需要模板能够处理多个重复组、层次结构等。
  6. 不能使用商业软件作为解决方案(例如 InfoPath)。我们需要能够随时修改源代码。

该应用程序是 c#.net。我们正在考虑使用 T4、XML + XSLT 或托管 Razor 引擎。鉴于语法对于非技术用户来说不会太繁琐,我们希望得到您的意见,您认为哪个模板引擎适合我们。我们也很乐意考虑尚未提及的内容。

谢谢。

4

2 回答 2

3

我很犹豫要不要在论坛上回答这个问题,因为技术选择取决于比问题中传达的更多的因素,包括对风险的态度、对开源的态度、以前的好坏经历、政治XSLT 相对于 Razor 的最大优势在于它是一个标准,并且在多个平台上具有多个实现(包括 .NET 上的至少三个实现!),因此没有锁定;但这似乎不是您的要求陈述中的一个因素。而且您使用.NET 的事实表明,供应商锁定无论如何都不是您担心的事情。

需要记住的一件事是,非程序员通常比程序员更快地接受 XSLT。它基于规则的声明性方法和它的 XML 语法有时会让程序员感到不舒服(这与他们以前见过的任何东西都不一样),但最终用户往往会像鸭子一样接受它。

于 2013-01-26T09:35:20.040 回答
0

我们决定使用 Razor Hosting。我发布此答案的原因是我认为如果包含以下文章链接会对其他人有所帮助:

http://www.west-wind.com/weblog/posts/2010/Dec/27/Hosting-the-Razor-Engine-for-Templating-in-NonWeb-Applications

Rick Strahl 的这一出色工作使托管 Razor 变得非常容易。

于 2013-01-28T15:07:37.090 回答