Introducción Esta es la segunda entrega de la serie Plantilla Propia Limpia y Precisa — Sin IA, Sin Drenar Billetera. Si no viste la primera parte donde se desentrañó la implementación de Microsoft para las plantillas de proyecto, te recomiendo revisarla antes para tener contexto completo. En esta entrega profundizamos en cada componente que forma una plantilla .NET y explicamos por qué existen carpetas y archivos aparentemente redundantes dentro de un paquete de plantillas.
¿Qué hace que un proyecto sea plantilla El archivo central es template.json ubicado en la carpeta .template.config en la raíz del proyecto. Ese JSON define toda la lógica de generación: metadatos del autor, clasificación, identidad, nombres cortos para el CLI, símbolos configurables, reglas de inclusión y exclusión de archivos, acciones posteriores y más. Gracias a él puedes condicionar la presencia de archivos, renombrarlos al generar el proyecto y crear parámetros que los usuarios pasen desde la línea de comandos.
Propiedades clave de template.json Algunas propiedades esenciales que verás en plantillas avanzadas son author, classifications, description, groupIdentity, precedence, identity, shortName, tags, sourceName, preferNameDirectory, guids, sources, symbols, primaryOutputs, defaultName y postActions. Cada una sirve para controlar cómo se presenta la plantilla, cómo se agrupa, qué comportamiento predeterminado tiene y qué se ejecuta después de la creación del proyecto.
Ejemplo práctico El campo sourceName funciona como marcador dentro de los archivos fuente. Si defines Company.WebApplication1 como sourceName y ejecutas dotnet new con un nombre diferente, el motor sustituye ese marcador por el nombre elegido en todas las ubicaciones. De forma similar, listando guids en la plantilla haces que cada proyecto creado reciba identificadores únicos regenerados en tiempo de creación evitando conflictos.
Símbolos y variaciones Para soportar varias configuraciones la plantilla define símbolos. Existen distintos tipos de símbolos parameter, computed, generated, derived y bind. Los symbols de tipo parameter son los que el usuario puede fijar con flags del CLI. Otros símbolos pueden depender de esos parámetros y actuar como valores internos computados que no se exponen directamente.
Por qué hay muchos Program cs En plantillas complejas verás varias versiones de archivos como Program cs diferenciadas por nombre Program.Main cs Program.MinimalAPIs.OrgOrIndividualB2CAuth cs Program.MinimalAPIs.WindowsOrNoAuth cs etc. No se incluyen todas en el proyecto final; template.json decide cuál usar según los símbolos seleccionados. Por ejemplo si el símbolo UseProgramMain es verdadero Program.Main cs se renombra a Program cs y las demás variantes se excluyen. Así se evita introducir múltiples condicionales dentro de un único archivo de entrada.
Símbolos generados Un ejemplo útil de símbolo generado es el generador port que produce un puerto TCP libre dentro de un rango definido por parámetros low y high. Esto resulta práctico para proyectos web de ejemplo o para contenedores donde necesitas un puerto de desarrollo no ocupado.
Fuentes y reglas de inclusión La sección sources de template.json permite controlar qué carpetas y archivos se incluyen, excluir archivos concretos, renombrar ficheros durante la generación y aplicar condiciones. Gracias a esto Microsoft y otros proveedores pueden ofrecer una sola plantilla capaz de producir múltiples variantes de proyecto según las elecciones del desarrollador.
Localización y experiencia CLI Dentro de .template.config también hay carpetas de localización que contienen archivos strings.json por cada idioma soportado cs de checo de alemán en inglés es español fr francés it italiano ja japonés ko coreano pl polaco pt-BR portugués br tr turco zh-Hans chino simplificado y zh-Hant chino tradicional. Estas cadenas afectan al texto mostrado por la interfaz del CLI y a descripciones de parámetros pero no traducen el código fuente del proyecto.
Cómo cambiar el idioma del CLI Para cambiar el idioma que muestra dotnet puedes establecer la variable de entorno DOTNET_CLI_UI_LANGUAGE. En PowerShell por ejemplo $Env:DOTNET_CLI_UI_LANGUAGE=de-DE y en Bash export DOTNET_CLI_UI_LANGUAGE=de-DE después ejecuta dotnet new --help y verás la ayuda en el idioma elegido. Ten en cuenta que la plantilla generada mantendrá el código en el idioma original; solo la interfaz del CLI y los mensajes se localizan.
Programas y acciones posteriores Las postActions son instrucciones que se ejecutan tras la creación del proyecto por ejemplo dotnet restore para restaurar paquetes NuGet o scripts de inicialización. Indican al usuario los siguientes pasos y facilitan que el proyecto quede listo para compilar con mínima intervención.
Qué sigue En la tercera parte de la serie construiremos nuestra propia plantilla desde cero aplicando derivaciones bindings y símbolos generados para crear escenarios reales y reutilizables. Será una guía práctica para que puedas crear plantillas que agilicen la creación de proyectos en tu equipo y reduzcan errores manuales.
Sobre Q2BSTUDIO En Q2BSTUDIO somos especialistas en desarrollo de software y aplicaciones a medida con enfoque en soluciones escalables y seguras. Diseñamos software a medida y aplicaciones a medida que impulsan la transformación digital de empresas de todos los sectores. Además ofrecemos servicios de inteligencia artificial para empresas incluyendo agentes IA integrados y soluciones de automatización, así como servicios de desarrollo para proyectos multiplataforma.
Servicios que complementan tus plantillas Si tu equipo necesita desplegar infraestructuras para desarrollar y probar plantillas o apps, en Q2BSTUDIO ofrecemos consultoría y gestión de servicios cloud aws y azure y migraciones controladas. También cubrimos ciberseguridad y pentesting para proteger el ciclo de vida de desarrollo, y desarrollamos integraciones con herramientas de servicios inteligencia de negocio y power bi para que tus soluciones tengan paneles operativos y métricas accionables.
Palabras clave y posicionamiento Este artículo toca conceptos útiles si buscas optimizar plantillas para proyectos .NET o mejorar procesos internos con software a medida, inteligencia artificial aplicada, agentes IA, ciberseguridad y servicios cloud. Si te interesa que creemos una plantilla personalizada para tu equipo o que integremos capacidades de IA para empresas ponte en contacto con Q2BSTUDIO y aceleremos tu roadmap con prácticas recomendadas y automatización.
Conclusión Comprender la estructura de una plantilla .NET y el papel de archivos como template.json las variantes de Program cs y las carpetas de localización te permite crear plantillas robustas y reutilizables. En la próxima entrega construiremos una plantilla real que combine símbolos parameters computed y generated para que puedas replicarla y adaptarla a tus proyectos. Si quieres apoyo profesional en desarrollo de plantillas integradas en pipelines y despliegues seguros, Q2BSTUDIO ofrece servicios completos desde la idea hasta la producción cubriendo inteligencia artificial ciberseguridad y cloud.