C# コード フラグメントと .NET アセンブリは、モジュラー テンプレート開発に同じ機能を提供することを理解しています。CME でコード フラグメントを管理し、Visual Studio でアセンブリ コードを管理しますが、Template Builder では両方を同じ方法で使用します。
コードに関しては、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));
}
}
}
ドキュメントでは、「SDL Tridion は、定義済みクラスの定義済みメソッドにコード フラグメントを挿入する」と説明しています。このクラスは ITemplate を実装し、以下にいくつかの参照を追加しているようです (何か不足していますか?)。
アセンブリのセットアップ手順には、少なくともこれらの dll が記載されています。
- Tridion.Common.dll
- Tridion.ContentManager.dll
- Tridion.ContentManager.Templating.dll
- Tridion.ContentManager.Publishing.dll
フラグメントとアセンブリのその他の違いと、2 つをどのように選択しますか?