Razón del artículo:
Parámetros a comparar :
Revisé un montón de artículos y preguntas sobre desbordamiento de pila, intercambio de pila, aquí hay algunas opciones sobre cómo generar documentos HTML :
Mientras revisaba el enfoque de RazorEngine , no pude ejecutarlo en .Net Core. Requiere muchas dependencias y bibliotecas obsoletas.
Sabiendo que todo el mundo evitaría las tecnologías obsoletas y las librerías de .Net Framework, creo que optar por este generador no es el camino correcto.
Después de algunas investigaciones, pude ejecutar el motor Razor usando esta biblioteca en la biblioteca "netstandard", consulte el siguiente código a continuación.
Ventajas:
Contras:
< PreserveCompilationContext > true </ PreserveCompilationContext >
HtmlContentBuilder es más adecuado para la creación de HTML dinámico y requiere mucha preparación para generar una salida HTML real. No veo los beneficios de usar esta biblioteca para los objetivos actuales.
Esta idea murió en mi cabeza desde el principio, ya que para lograrlo necesitábamos:
Aquí está el ejemplo de código con el enfoque más simple y atómico implementado en la aplicación de consola .net core:
Puntos clave:
Después de todos los hallazgos decepcionantes anteriores, comencé a bloquear el uso de marcos JS para generar documentos, así es como encontré Handlebars.js pero escrito completamente en .NET .
Así que Handlebars.Net es una forma realmente fácil y rápida de generar documentos porque no utiliza ningún motor de secuencias de comandos para ejecutar una biblioteca Javascript; compila las plantillas de Handlebars directamente en el bytecode de IL . También imita la API de la biblioteca JS tanto como sea posible.
Dado que Handlebars.js tiene una gran comunidad y una larga historia, podrá encontrar respuestas a sus preguntas para crear un HTML válido.
El enlace a su repositorio de Github está aquí .
La forma más simple y rápida para la generación de archivos simples sería usar plantillas simples que no traerán nuevas dependencias al proyecto.
Por otro lado, a las personas que conocen Razor les puede resultar más fácil utilizar un potente motor Razor a través de RazorLight, pero puede requerir el esfuerzo de DevOps para asegurarse de que las bibliotecas dependientes estén en su lugar en los entornos. Y creo que la forma más fácil y extensible sería Handlebars.Net , que es de uso sencillo.
Además
Todos estos hallazgos se pueden aplicar no solo para generar archivos HTML, sino también para archivos XML y cualquier documento de texto sin formato.
Además, este artículo será útil para aquellos que buscan una forma de generar documentos PDF, ya que las fuentes de datos para la generación de archivos PDF pueden ser cadenas HTML. Un buen tema para explorar a continuación sería: "Cómo convertir HTML a PDF".
Imagen principal cortesía de Nathan da Silva en Unsplash.