1

Wir suchen nach einer schnellen, flexiblen Möglichkeit, Vorlagenvorlagen (in diesem Fall personalisierte E-Mails im Text- und HTML-Format) aus einer .NET-Konsolenanwendung zu erstellen.Was ist eine gute Templating-Engine für eine .NET-Konsolenanwendung?

Wir haben keinen VirtualPathProvider und keine gültige HttpContext.Current, was bedeutet, dass es sehr, sehr schwer wird, die WebForms View Engine und alle anderen .NET Web View Engines (Spark (Razor) werden umfangreiche Installationen benötigen, um sie glauben zu lassen, dass sie in einer Web-App laufen.

Ich mag wie etwas tun:

var customerTemplateData = GetTemplateDate(customer); 
var htmlBody = templateEngine.Render("template.html", customerTemplateData); 
var textBody = templateEngine.Render("template.txt", customerTemplateDate); 
SendMail("[email protected]", customer.Email, "Hey there!", htmlBody, textBody); 

und ich möchte es mit komplexen verschachtelten Daten zu tun, vielen Listen innerhalb von Listen, bis zu 1.000 Mal pro Minute.

Alle Empfehlungen für spezielle Template-Engines oder nach Möglichkeiten, die Web-Ansicht Motoren in einem eigenständigen Kontext ausgeführt sein geschätzt :)

Danke,

Dylan

Antwort

3

Wenn Sie nach einer Anleitung suchen, wie Sie dies mit Spark erreichen würden, gibt es im Spark-Quellcode eine voll funktionsfähige Email and Text Templating Sample available here.

Es sollte angemerkt werden, dass es tatsächlich keine Abhängigkeit gibt, die dieses Beispiel auf HttpContext oder einer anderen Web-Infrastruktur für diese Angelegenheit hat. Es ist völlig unabhängig und könnte genauso einfach wie eine Konsolenanwendung ausgeführt werden.

hoffe, das hilft,
das Beste, alle
Rob

+0

Ich schaffte es schließlich, Spark dazu zu bringen, das zu tun, was ich brauche, aber es dauerte ein wenig Hacking - zwei kleine Änderungen an der Core-Bibliothek und ein SparkSettings direkt in die Engine injizieren, anstatt sich auf die App.config-Datei (aus irgendeinem Grund es konnte den SparkConfiguration-Handler in einer Konsolenanwendung nicht laden?) Arbeitscodes in meinem Github-Gabel; akzeptiere meine Pull-Anfrage und ich akzeptiere deine Antwort. :) –

+0

Ich habe die Pull Req in einem Tab geöffnet :) Ich warte nur darauf, etwas Zeit zu bekommen, um richtig durchzulaufen - aber es sieht sehr gut aus. Danke für den Beitrag - das ist wertvoller als eine angenommene Antwort;) – RobertTheGrey

+0

OK, es ist eingezogen, so dass Sie jetzt das Hauptrepo referenzieren können. Nochmals vielen Dank für den Beitrag. Es sind keine Änderungen an der Core-Bibliothek erforderlich, aber ich habe das Beispiel korrigiert, damit es korrekt verwendet werden kann. Viel Spass damit! :) – RobertTheGrey

2

Es gibt durchaus ein paar Möglichkeiten, Zum Erstellen von Template-Inhalten über die Kommandozeile ist NVelocity ein Beispiel, aber kürzlich haben wir auch unseren Wrapper des Razor-Parsers auf CodePlex (http://razorengine.codeplex.com/) veröffentlicht, der einen Blick wert ist.

+0

Nun, ich habe dies stimmen up! – Buildstarted

Verwandte Themen