Khi bạn mở một solution Sitecore trong Visual Studio hoặc kiểm tra thư mục cài đặt Sitecore trong IIS, bạn sẽ thấy khá nhiều thư mục và file “lạ”.
Bài viết hôm nay giúp bạn hiểu ý nghĩa của từng phần, và phân biệt giữa cấu trúc Sitecore gốc và cấu trúc Helix (chuẩn code hiện đại).
Dự án Sitecore có thể chia thành hai lớp (layer) về mặt cấu trúc:
| Cấp | Mô tả | Ví dụ |
|---|---|---|
| A. Cấu trúc cài đặt (Website Root) | Thư mục cài Sitecore thật trong IIS (chạy web) | C:\inetpub\wwwroot\sitecore.local\ |
| B. Cấu trúc code solution (Helix) | Thư mục code trong Visual Studio Solution | src\Foundation, src\Feature, src\Project |
Đây là nơi Sitecore thực sự chạy (giống như wwwroot trong ASP.NET).
Dưới đây là các thư mục quan trọng bạn cần biết:
| Thư mục | Mô tả |
|---|---|
| /App_Config/ | Chứa tất cả file cấu hình của Sitecore và dự án (bao gồm include patch). |
| /bin/ | Nơi chứa các file DLL sau khi build (Sitecore core DLL + custom code). |
| /sitecore/ | Giao diện quản trị Sitecore (Content Editor, Experience Editor…). |
| /Views/ | Chứa Razor View (.cshtml) cho các Rendering MVC. |
| /App_Data/ | Chứa log, temporary cache, các file serialized data. |
| /layouts/ | Legacy folder (chủ yếu cho View cũ, ít dùng ở phiên bản mới). |
| /xsl/ | Dành cho các rendering XSL cũ (hiện hầu như không dùng nữa). |
| /sitecore modules/ | Dành cho module hoặc gói mở rộng (ví dụ: Sitecore PowerShell Extensions). |
| /media/ | (Tuỳ môi trường) – nơi chứa file media nếu không dùng Media Library database. |
📘 Gợi ý: Khi bạn publish từ Visual Studio, code (DLL, Views, Config) sẽ được copy vào đúng các thư mục này.
Trong Visual Studio, chuẩn Helix định nghĩa 3 layer chính để tách biệt vai trò của từng phần code.
Chứa logic cơ bản, tái sử dụng trên toàn hệ thống.
Ví dụ: Logging, Data Access, Serialization, Indexing, Caching…
📂 Ví dụ:
Chứa tính năng cụ thể, độc lập — có thể tái sử dụng giữa các site.
📂 Ví dụ:
Mỗi Feature có thể có:
Chứa phần cấu hình cuối cùng để kết hợp các Feature và Foundation thành website hoàn chỉnh.
📂 Ví dụ:
Mỗi project thường có:
Layout chính (_Layout.cshtml)
App_Config riêng cho môi trường
ViewStart, Partial, Theme
| Thư mục | Mục đích |
|---|---|
| /serialization/ | Chứa file .yml hoặc .item được serialize từ Sitecore để version control nội dung. |
| /tests/ | Chứa project test (unit test, integration test). |
| /tools/ | Script build, PowerShell hoặc deploy pipeline. |
Developer code trong src/Feature/... hoặc src/Foundation/...
Build → tạo ra DLL trong /bin
Config được copy vào /App_Config/Include
View được copy vào /Views
IIS hoặc Sitecore chạy trên thư mục website thực (C:\inetpub\...)
💡 Không sửa trực tiếp trong thư mục IIS (wwwroot) – chỉ publish từ solution.
💡 Mỗi Feature/Project nên có file App_Config/Include/*.config riêng để dễ quản lý.
💡 Dùng Helix naming convention: Company.Feature.Name, Company.Foundation.Name.
💡 Khi debug lỗi, check log trong:
| Layer | Vai trò | Ví dụ |
|---|---|---|
| Foundation | Logic dùng chung | Logging, Data, Caching |
| Feature | Module tính năng | Navigation, Banner, Article |
| Project | Website hoàn chỉnh | Biltmore, CorporateSite |
Cấu trúc thư mục là nền tảng quan trọng giúp bạn hiểu Sitecore hoạt động như thế nào, và nên đặt code ở đâu.
Nắm vững cách tổ chức này, bạn sẽ dễ dàng mở rộng, debug, và làm việc nhóm hiệu quả hơn trong các dự án lớn.
🔸 Hiểu về Template, Item và Field trong Sitecore
Đây là “linh hồn” của Sitecore – nơi bạn định nghĩa mọi loại nội dung trong hệ thống.
#Sitecore #Helix #SitecoreCMS #DotNetDeveloper #SitecoreVietnam #CMSDevelopment