Я понимаю, что фрагменты кода С# и .NET Assemblies предлагают те же функции для модульной разработки шаблонов. Мы управляем фрагментами кода в CME и ассемблерном коде в Visual Studio, но используем одинаковый способ в Template Builder.
В терминах кода я могу создать блок построения шаблонов фрагмента кода С# (TBB), например:
var timeStamp = DateTime.Now.ToString("d MMM yyyy");
package.PushItem("timeStamp from fragment", package.CreateHtmlItem(timeStamp));
Я также могу создать сборку шаблонов сборки .NET с использованием того же кода, выполнив ITemplate, как показано ниже.
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));
}
}
}
docs объясняют, что "SDL Tridion вставляет фрагмент кода в свой предопределенный метод предопределенного класса". Похоже, этот класс реализует ITemplate и добавляет некоторые ссылки ниже (я что-то пропустил?).
В инструкции по установке сборки упоминаются, по крайней мере, эти DLL.
- Tridion.Common.dll
- Tridion.ContentManager.dll
- Tridion.ContentManager.Templating.dll
- Tridion.ContentManager.Publishing.dll
Любая другая разница между фрагментом и сборкой и как вы бы выбрали между ними?