2

目前,作为从 SDL Tridion 5.3 升级到 SDL Tridion 2011 SP1 的一部分,我们正在将 VBScript 模板转换为模块化模板,但在这样做的同时,我们在 .NET 中寻找正确的等效函数时面临挑战。

例如,这两个 VBScript 函数在 .NET 中的等效函数DisplayPublishedComponentLinkMakeTcdlComponentLink

任何人都可以向我提供有关这些 VBScript 函数在 .NET 中的映射的信息吗?

4

3 回答 3

9

模块化模板中没有 VBScript 函数(在 VBScript 模板中使用)的精确映射,因为这两个模板模型完全不同。

在迁移 VBScript 模板时,您永远不应该尝试只是转换(或重写)它,而是查看它的要求并从头开​​始构建一个满足这些要求的模块化模板。这可能听起来效率较低,但实际上并不是因为模块化模板模型具有不同的好处,您将开始使用这些好处。

更详细地说,在模块化模板中,您应该使用 Dreamweaver TBB 和 .NET 程序集 TBB 将设计和功能分开,而在 VBscript 模板中,这一切都是混合的。

您提到的功能既包含功能又包含设计,在模块化模板中您应该会发现它们甚至不再需要。例如,您可以在 Dreamweaver TBB 中简单地使用以下代码:

<a tridion:href="@@LinkField.ID@@">@@LinkText@@</a>

您可能还对以下有关模块化模板的文章感兴趣,以获取有关其概念以及如何使用它们的更多详细信息:

于 2012-08-03T10:58:23.240 回答
1

我同意 Bart 从头开始​​的观点。简单地复制 C# 代码中的所有内容可能会节省一些前期费用,但会错过模块化模板的最强大功能(例如模块化)。

在比较新旧模板时,请考虑:

  • 将布局和标记生成代码移至 DWT TBB
  • 跟踪 VBScript 模板之间的重复逻辑,并考虑创建 C# TBB 以对类似功能进行分组
  • 查找因上下文或硬编码值而异的模板功能,并将它们移动到参数架构或 C# TBB 逻辑

如果你能做到最后一点,你可以减少这种转换中的模板数量,同时创建有用和可重用的模板构建块。

于 2012-08-04T03:31:08.537 回答
0

从旧的旧模板迁移到模块化模板时,只有在您实施网站的新设计时才这样做。如果可能的话,您可以同时重新考虑您的网站解决方案的整个架构(发布模型)。

从技术角度来看,转向模块化模板肯定有好处,而且由于旧模板已被弃用,因此在支持方面肯定是这样。

但我敢肯定,您希望为您的 $$ 获得更多收益。

于 2012-08-04T09:16:29.417 回答