Glass.Mapper là ORM dành cho Sitecore, giúp map field trong item → property C# và bind thẳng vào View mà không cần truy vấn thủ công bằng Sitecore.Context.Item hoặc item.Fields[].
Glass.Mapper.Sc là một library giúp:
✔ Mapping item → C# model
✔ Truy cập field bằng property mạnh kiểu (string, int, DateTime, Image…)
✔ Tự động xử lý Datasource item
✔ Hỗ trợ Lazy Loading, Infer Template
✔ Hỗ trợ Dependency Injection
Không cần:
Mà chỉ cần:
Trong Sitecore XP 9+ bạn dùng:
Hoặc dùng Foundation project đã tích hợp.
Trong Foundation, thường có file:
Trong đó config DI:
GlassMapper sẽ tự map model.
Ví dụ: Template "Home Page" có field:
Title (Single Line Text)
BannerImage (Image)
Content (Rich Text)
Bạn tạo model:
✔ Chỉ dùng AutoMap
✔ Không cần chỉ TemplateId vì Glass tự map theo field name
GlassMapper tự map đúng item theo URL.
✔ Hỗ trợ Enjoy Editable trong Experience Editor
✔ Không cần HTML Helper phức tạp
Nếu Rendering có Datasource:
Hoặc Glass có extension:
Hoặc query bằng SitecoreService:
Glass hỗ trợ nhiều field type:
| Sitecore Field | Glass Type |
|---|---|
| Single Line Text | string |
| Rich Text | string |
| Number | int/double |
| Checkbox | bool |
| Image | Glass.Mapper.Sc.Fields.Image |
| General Link | Glass.Mapper.Sc.Fields.Link |
| Multilist | IEnumerable<TModel> |
| Droplink | TModel |
Ví dụ multilist:
Performance hơi thấp nếu load nhiều item (vì nó map từng field → property)
Không phù hợp cho batch import nặng
Cần cẩn thận khi dùng AutoMap
| Trường hợp | Có nên dùng |
|---|---|
| Rendering MVC | ✔ Nên dùng |
| Page-level model | ✔ |
| SXA JSON API | ❌ Không |
| Import hàng loạt | ❌ Không |
| Custom service data | ❌ Không |
Hôm nay bạn học:
Glass Mapper là gì
Cách tạo model và map field
Cách lấy data qua ISitecoreContext
Binding trong view bằng Html.Glass()
Truy xuất datasource item
Query với SitecoreService
Best practices và lưu ý