He tomado una base de código C# (2.0) que tiene la capacidad de imprimir información. El código para hacer esto es terriblemente tedioso. Los elementos se dibujan en cada página, con constantes mágicas que representan el posicionamiento. Imagino al programador sentado con una regla, diseñando cada página midiendo y escribiendo en las posiciones. Y sí, uno podría encontrar algunas buenas abstracciones para hacer que este enfoque sea racional. Pero estoy buscando un método diferente.Generando HTML programáticamente en C#, Targeting Printed Reports
La idea es que reemplace el código actual que imprime con código que genera páginas HTML estáticas, las guarda en un archivo y luego inicia el navegador web en ese archivo. El beneficio más obvio es que no tengo que lidiar con el formato. Puedo permitir que el navegador web lo haga por mí con etiquetas y CSS.
Así que lo que estoy buscando es un conjunto de clases muy livianas que puedo usar para ayudar a generar HTML. No necesito nada tan pesado como HTMLTextWriter. Lo que estoy buscando es algo a evitar fragmentos de esta manera:
String.Format("<tr><td>{0}</td><td>{1}</td></tr>", foo, bar);
Y en vez tome tener este tipo de sensación:
...
table().
tr().
td(foo).
td(bar)
O algo por el estilo. He visto clases ligeras como esa para otros idiomas pero no puedo encontrar el equivalente (o mejor) para C#. Ciertamente puedo escribirlo yo mismo, pero soy un firme creyente en no reinventar las ruedas.
¿Sabe algo como esto? ¿Sabe algo mejor que esto?