Tabla de contenidos
Introducción
¿Alguna vez te encontraste escribiendo bloques eternos de String.Format
, StringBuilder
o peor… ¿concatenación a lo cavernícola? 😩
Pues déjame decirte: hay una mejor manera de hacer esto.
Su nombre es Nustache, y aunque suena como un bigote hipster, es en realidad una herramienta bien práctica para trabajar con plantillas de texto en C#.
Vamos a entrarle.
¿Qué demonios es Nustache y por qué debería importarte?
Nustache es una implementación de Mustache para C#.
Mustache, por si no lo sabías, es un motor de plantillas minimalista y sin lógica (sí, como algunos jefes 😅),
Con Nustache puedes generar texto (HTML, JSON, correos, etc.) a partir de plantillas con llaves dobles: {{nombre}}
. Así de fácil.
💡 Piensa en Nustache como el
String.Format
con esteroides, pero sin que tengas que llorar por el orden de los parámetros.
Ventajas de usar Nustache en tus proyectos C#
✅ Separas lógica de presentación.
✅ Plantillas legibles, como Dios manda.
✅ Compatible con cualquier tipo de texto (¡no solo HTML!).
✅ Ideal para microservicios, correos automáticos, reportes y más.
✅ No dependes de ASP.NET ni cosas pesadas como Razor.
Instalación sin dramas: Cómo añadir Nustache a tu proyecto
Abre tu consola de NuGet y ejecuta:
Install-Package Nustache.Core
O si estás en el mundo moderno con .NET CLI:
dotnet add package Nustache.Core
🎉 ¡Listo! Ya puedes dejar de escribir cadenas con 12 +
seguidos.
Hola mundo con Nustache: Tu primera plantilla
using Nustache.Core;
var plantilla = "Hola {{nombre}}, bienvenido a la jungla.";
var datos = new { nombre = "Neo" };
var resultado = Render.StringToString(plantilla, datos);
Console.WriteLine(resultado);
Salida:
Hola Neo, bienvenido a la jungla.
Más fácil que hacer un café en la oficina (siempre que no se haya roto la máquina otra vez).
Variables, loops y condicionales: La magia de las plantillas
🔄 Loop:
var plantilla = "Tus frutas favoritas: {{#frutas}}{{.}}, {{/frutas}}";
var datos = new { frutas = new[] { "manzana", "banana", "kiwi" } };
Salida:
Tus frutas favoritas: manzana, banana, kiwi,
⚖️ Condicional:
var plantilla = "{{#esAdmin}}Tienes acceso total.{{/esAdmin}}{{^esAdmin}}Acceso limitado.{{/esAdmin}}";
var datos = new { esAdmin = true };
Salida:
Tienes acceso total.
Separando lógica y presentación como un pro
En lugar de tener todo embutido en tu código, puedes tener un archivo .mustache
y cargarlo desde allí. Ejemplo:
plantilla.mustache
Hola {{nombre}}, tu pedido #{{pedido}} ha sido enviado 🚚.
var resultado = Render.FileToString("plantilla.mustache", new { nombre = "Luisa", pedido = 123 });
Así tu código no parece una receta de cocina mal escrita.
Ejemplos prácticos para la vida real (o casi)
✅ Correos automáticos:
«Hola {{cliente}}, tu suscripción vence el {{fecha}}. No te olvides 😉»
✅ Facturas:
«Subtotal: {{subtotal}}, IVA: {{iva}}, Total: {{total}}»
✅ Contratos (sí, legales también):
«El empleado {{nombre}} acuerda trabajar hasta que la laptop explote 💥»
Errores comunes y cómo evitarlos sin llorar (mucho)
❌ Usar propiedades que no existen en tu modelo → Nada se muestra, y tú te preguntas si ya rompiste todo.
✅ Usa nombres exactos en tu plantilla y en tu objeto de datos.
❌ Loops mal cerrados → El clásico: abre con {{#cosas}}
y olvida el {{/cosas}}
.
✅ ¡Cierra siempre tus bloques! Como los ciclos for, pero con bigotes.
¿Y ahora qué? Integrando Nustache en aplicaciones más grandes
Puedes usarlo para:
- 📧 Enviar emails desde un backend con plantillas dinámicas.
- 📝 Generar documentos automáticos.
- 🖥️ Crear contenido dinámico en apps de escritorio.
- 📦 Serializar contenido para APIs o microservicios.
¿Lo mejor? No necesitas aprender nada más. Es tan simple que hasta podrías usarlo para escribir cartas de amor automáticas ❤️ (aunque no lo recomiendo).
Conclusión: ¿Vale la pena o es otra moda pasajera?
Si odias String.Format
, si Razor te parece un cañón para matar moscas y si quieres algo rápido, liviano y simple, entonces sí, Nustache es tu nuevo BFF.
¿Tiene limitaciones? Claro. No te va a preparar café ni te va a conseguir pareja. Pero para tareas de generación de texto, es una joya.
¿Y tú? ¿Ya habías probado Nustache? ¿O sigues peleándote con los +
como en 2003?
Déjame tus comentarios, dudas, quejas o memes 👇 ¡Nos leemos!