Optimiza tu Desarrollo con Sitecore CLI y Serialización

La serialización es uno de los principios fundamentales en el desarrollo con Sitecore. Con la llegada de Sitecore CLI y el Content Serialization, el proceso de gestionar ítems de Sitecore como parte del código fuente se ha vuelto más robusto y eficiente. Si quieres entenderla mejor, exploraremos cómo funciona a continuación. ¿Qué es la Serialización?…

,

La serialización es uno de los principios fundamentales en el desarrollo con Sitecore. Con la llegada de Sitecore CLI y el Content Serialization, el proceso de gestionar ítems de Sitecore como parte del código fuente se ha vuelto más robusto y eficiente. Si quieres entenderla mejor, exploraremos cómo funciona a continuación.

¿Qué es la Serialización?

La serialización en Sitecore es el proceso de convertir ítems de la base de datos de Sitecore (como plantillas, layouts, configuraciones) en archivos de texto plano que pueden ser versionados en sistemas de control de código como Git. Esto permite:

  • Control de versiones: Rastrear cambios en el contenido y configuración
  • Colaboración en equipo: Múltiples desarrolladores pueden trabajar simultáneamente
  • Despliegues automatizados: Integración con pipelines de CI/CD
  • Sincronización de entornos: Mantener consistencia entre local, desarrollo, y producción

Sitecore CLI: La Herramienta Principal

Sitecore CLI es una interfaz de línea de comandos que reemplaza y mejora herramientas anteriores como Unicorn y TDS. Utiliza el formato .yml (YAML) para almacenar los ítems serializados.

Instalación

dotnet tool install Sitecore.CLI --global

Configuración Básica

El archivo sitecore.json en la raíz del proyecto define la configuración:

{
  "$schema": "https://sitecore.io/.schemas/root.schema.json",
  "modules": [
    "src/Project/MyProject/*.module.json",
    "src/Feature/*/*.module.json",
    "src/Foundation/*/*.module.json"
  ],
  "plugins": [
    "Sitecore.DevEx.Extensibility.Serialization@5.0.7"
  ]
}

Archivos Module.json

Cada módulo tiene su propio archivo .module.json que define qué ítems serializar:

{
  "namespace": "Project.MyProject",
  "items": {
    "includes": [
      {
        "name": "templates",
        "path": "/sitecore/templates/Project/MyProject",
        "allowedPushOperations": "createUpdateAndDelete"
      },
      {
        "name": "renderings",
        "path": "/sitecore/layout/Renderings/Project/MyProject",
        "allowedPushOperations": "createUpdateAndDelete"
      }
    ]
  }
}

Comandos Principales

1. Serialization Pull (Extraer)

Descarga ítems desde Sitecore a archivos locales:

dotnet sitecore ser pull

Este comando:

  • Conecta con la instancia de Sitecore
  • Lee los ítems definidos en las configuraciones
  • Crea/actualiza archivos .yml en la carpeta local

2. Serialization Push (Subir)

Sube los archivos locales a Sitecore:

dotnet sitecore ser push

Operaciones que realiza:

  • Crea nuevos ítems que no existen
  • Actualiza ítems modificados
  • Opcionalmente elimina ítems (según configuración)

3. Watch Mode (Modo Observación)

Sincroniza cambios automáticamente:

dotnet sitecore ser watch

Muy útil durante el desarrollo activo, detecta cambios en tiempo real y los sincroniza bidireccionalmente.

Estructura de Archivos Serializados

Los ítems se guardan en formato YAML con esta estructura:

---
ID: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
Parent: "parent-item-id"
Template: "template-id"
Path: /sitecore/content/MyProject/Home
DB: master
Languages:
- Language: en
  Versions:
  - Version: 1
    Fields:
    - ID: "field-id"
      Hint: Title
      Value: "Welcome to My Site"

Estrategias de Serialización

Por Capas (Helix)

En arquitectura Helix, cada capa tiene su configuración:

  • Foundation: Componentes base y configuración compartida
  • Feature: Funcionalidades específicas del negocio
  • Project: Implementaciones específicas del sitio

Includes y Excludes

Control fino sobre qué serializar:

{
  "items": {
    "includes": [
      {
        "name": "content",
        "path": "/sitecore/content/MyProject",
        "rules": [
          {
            "path": "/Home",
            "scope": "singleItem"
          },
          {
            "path": "*",
            "scope": "ignored"
          }
        ]
      }
    ]
  }
}

Mejores Prácticas

  1. No serializar contenido editorial: Solo templates, settings y estructura
  2. Usar .gitignore apropiado: Excluir carpetas temporales
  3. Validar antes de push: Revisar cambios con dotnet sitecore ser validate
  4. Sincronizar regularmente: Hacer pull frecuentemente para evitar conflictos
  5. Documentar convenciones: Establecer reglas de equipo claras

Resolución de Conflictos

Cuando hay conflictos:

  1. Hacer backup: Siempre respaldar antes de resolver
  2. Comparar diferencias: Usar herramientas de diff
  3. Decidir estrategia: Mantener local, remoto, o merge manual
  4. Validar resultado: Probar después de resolver

Conclusión

La serialización con Sitecore CLI representa un avance significativo en la gestión de código fuente para proyectos Sitecore. Su integración nativa, velocidad y compatibilidad con XM Cloud la convierten en la opción predeterminada para desarrollos modernos.


Mayra Olivo is a Senior Software Engineer at OSHYN, where she leads backend development and cloud architecture initiatives using .NET, Azure, and data analytics tools. With over 7 years of experience, she has delivered scalable digital solutions for global brands, specializing in performance optimization, automation, and digital experience platforms such as Sitecore and Optimizely.

She is also the founder of SUG Latam and a three-time Sitecore MVP, recognized for her leadership in tech communities across Latin America. Mayra focuses on innovation, community building, and empowering teams through knowledge sharing and strategic collaboration. Her work has contributed to award-winning digital platforms and community impact initiatives.