Tôi hiểu C# Code Fragments và .NET Assemblies cung cấp chức năng tương tự cho việc phát triển mẫu mô-đun. Chúng tôi quản lý các đoạn mã trong CME và mã lắp ráp trong Visual Studio, nhưng sử dụng cả hai cách tương tự trong Trình tạo mẫu.Sự khác biệt giữa các đoạn mã C# và TBB lắp ráp là gì?
Về mã, tôi có thể tạo ra một C# Mã Fragment Template Building Block (TBB), ví dụ:
var timeStamp = DateTime.Now.ToString("d MMM yyyy");
package.PushItem("timeStamp from fragment", package.CreateHtmlItem(timeStamp));
Tôi cũng có thể tạo ra một assembly .NET Template Building Block sử dụng cùng mã bằng cách thực hiện ITemplate như dưới đây.
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));
}
}
}
Các docs giải thích rằng "SDL Tridion chèn đoạn mã trong phương pháp xác định trước của một lớp được xác định trước." Có vẻ như lớp này triển khai ITemplate và thêm một số tham chiếu bên dưới (tôi có thiếu gì không?).
assembly setup instructions đề cập đến ít nhất các dll này.
- Tridion.Common.dll
- Tridion.ContentManager.dll
- Tridion.ContentManager.Templating.dll
- Tridion.ContentManager.Publishing.dll
Bất kỳ sự khác biệt khác giữa mảnh và lắp ráp và làm thế nào bạn sẽ lựa chọn giữa hai?
Giải thích tuyệt vời và một số ví dụ hay, nhưng vẫn còn một câu hỏi. Tại sao (hoặc nên) bạn (không) sử dụng các đoạn C#? –
Tôi thấy rằng những người khác đã trả lời lý do của họ, vì vậy thay vào đó quyết định tập trung giải thích cách các đoạn C# hoạt động và cách bạn có thể thực hiện những điều nhất định với chúng. Tôi thường viết khá một vài đoạn C#, vì chúng không có điều kiện tiên quyết, điều này đảm bảo *** mọi người *** có thể sử dụng chúng. –
Tôi thấy phần "cách chọn" được trả lời trong các câu trả lời khác cũng như trong câu trả lời kỹ lưỡng và chi tiết (và cập nhật) của Frank. Về cơ bản, chúng tôi tự do lựa chọn giữa chức năng phân đoạn C# này so với những gì Visual Studio và một hội đồng cung cấp. Tôi biết về việc nhập khẩu, nhưng không nhận ra rằng chúng tôi có quyền truy cập vào 'nhật ký' cũng như cách xác định các chức năng tùy chỉnh. 1 và chấp nhận cho "trục xuất" một số phép thuật màu đen _voodoo xung quanh C# mảnh - dễ dàng hơn nhiều để đưa ra quyết định sáng suốt với sự rõ ràng này. –