Plantillas de texto para C#

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!

Deja un comentario