据我了解,C# 代码片段和 .NET 程序集为模块化模板开发提供相同的功能。我们在 CME 中管理代码片段,在 Visual Studio 中管理汇编代码,但在模板生成器中使用相同的方式。
在代码方面,我可以创建一个C#代码片段模板构建块(TBB),例如:
var timeStamp = DateTime.Now.ToString("d MMM yyyy");
package.PushItem("timeStamp from fragment", package.CreateHtmlItem(timeStamp));
我还可以通过实现 ITemplate 来使用相同的代码创建 .NET 程序集模板构建块,如下所示。
using System;
using Tridion.ContentManager.Templating;
using Tridion.ContentManager.Templating.Assembly;
namespace CreateAndBreakTemplates
{
[TcmTemplateTitle("Add Date to Package")]
public class AddDateToPackage : ITemplate
{
public void Transform(Engine engine, Package package)
{
var timeStamp = DateTime.Now.ToString("d MMM yyyy");
package.PushItem("timeStamp from assembly",
package.CreateHtmlItem(timeStamp));
}
}
}
The docs http://sdllivecontent.sdl.com/LiveContent/content/en-US/SDL_Tridion_2011_SPONE/concept_EAD6A4932E6B4BAA87646A5F8D9C6A9C解释“SDL Tridion 将代码片段插入到预定义类的预定义方法中”。看起来这个类实现了 ITemplate 并在下面添加了一些引用(我错过了什么吗?)。
The 装配设置说明 http://sdllivecontent.sdl.com/LiveContent/content/en-US/SDL_Tridion_2011_SPONE/task_BE927D0A8B0F4E46AFE51032895447CA至少提到这些dll。
- Tridion.Common.dll
- Tridion.ContentManager.dll
- Tridion.ContentManager.Template.dll
- Tridion.ContentManager.Publishing.dll
片段和组装之间还有其他区别吗?您将如何在两者之间进行选择?