Pouvez-vous recommander un moteur de modèle .net?

Je recherche un moteur de template .net – quelque chose de simple, de léger, stable avec pas trop de dépendances. Tout ce dont j’ai besoin pour le moment, c’est de créer des e-mails en texte brut et HTML. Quelqu’un peut-il me donner une bonne recommandation?

Si cela peut vous aider – quelque chose comme les librairies Java ou les librairies Velocity .

[UPDATE] Merci pour les réponses jusqu’ici – très apprécié. Je suis vraiment intéressé par les recommandations ou les histoires de guerre lorsque vous avez utilisé ces bibliothèques. Semble être le meilleur moyen de prendre une décision sans essayer chacun à son tour.

    Voici quelques autres:

    • NHaml
    • Étincelle
    • Brail (peut être utilisé seul )

    A propos de NVelocity, il a été développé par les gars de Castle, il est développé ici

    Pour les emails, je n’ai jamais eu besoin de plus que NVelocity.

    Liste plus complète

    • ASP.Net WebForm View Engine intégré
    • ASPView
    • Brail
    • NHaml (port .Net de Haml)
    • Étincelle
    • NVelocity
    • SsortingngTemplate.Net

    Je recommanderais CodeSmith Generator . C’est un générateur de code basé sur un modèle, avec des mises à jour constantes et une communauté active. Voici une liste de modèles fournis avec CodeSmith Generator.

    RazorEngine, un moteur de template basé sur le moteur d’parsing Microsoft Razor.

    https://github.com/Antaris/RazorEngine

    Je ne l’ai pas utilisé, mais je trouve cela intéressant parce que si vous avez un arrière-plan ASP.NET MVC, vous n’aurez pas besoin d’apprendre quelque chose de nouveau.

    modèle de chaîne des gens de anltr.org avec une version C # aussi .

    Je viens de publier un projet open source. Il est principalement destiné à la création de modèles de courrier électronique, mais vous pouvez utiliser l’parsingur seul si vous le souhaitez. Vous pouvez lire plus de détails et récupérer le code source de mon blog.

    http://thecodedecanter.wordpress.com/2010/07/19/town-crier-an-open-source-e-mail-templating-engine-for-net/

    Je pense que Moustache (http://mustache.github.com/) peut également convenir.

    Quelques tests avec Handlebars, RazorEngine et SharpTAL ci-dessous:

    namespace ConsoleApplication4 { class Program { static void Main(ssortingng[] args) { Stopwatch sw = new Stopwatch(); //RAZOR ssortingng razorTemplate = @"@model ConsoleApplication4.Test 

    @Model.Title

    @if(Model.Condition1) { condition1 is true }
    @foreach(var movie in Model.Movies) {@movie}
    "; //burning Engine.Razor.RunComstack(razorTemplate, "templateKey", typeof(Test), new Test()); sw.Start(); var result1 = Engine.Razor.RunComstack(razorTemplate, "templateKey", typeof(Test), new Test()); sw.Stop(); Console.WriteLine("razor : "+sw.Elapsed); //SHARPTAL ssortingng sharpTalTemplate = @"

    ${Title}

    condition1 is true
    ${movie}
    "; var test = new Test(); var globals = new Dictionary { { "Movies", new List {test.Movies[0],test.Movies[1],test.Movies[2] } }, { "Condition1", test.Condition1 }, { "Title", test.Title }, }; var tt = new Template(sharpTalTemplate); tt.Render(globals); sw.Restart(); var tt2 = new Template(sharpTalTemplate); var result2 = tt2.Render(globals); sw.Stop(); Console.WriteLine("sharptal : " + sw.Elapsed); //HANDLEBARS ssortingng handleBarsTemplate = @"

    {{Title}}

    {{#if Condition1}} condition1 is true {{/if}}
    {{#each Movies}} {{this}} {{/each}}
    "; var tt3 = Handlebars.Comstack(handleBarsTemplate); sw.Restart(); var result3 = tt3(new Test()); sw.Stop(); Console.WriteLine("handlebars : " + sw.Elapsed); Console.WriteLine("-----------------------------"); Console.WriteLine(result1); Console.WriteLine(result2); Console.WriteLine(result3); Console.ReadLine(); } } public class Test { public bool Condition1 { get; set; } public List
    Movies { get; set; } public ssortingng Title { get; set; } public Test() { Condition1 = true; Movies = new List() { "Rocky", "The Fifth Element", "Intouchables" }; Title = "Hi stackoverflow! Below you can find good movie list! Have a good day."; } } }

    et résultats:

    résultats du code

    Essayez ceci: Email Template Framework http://www.bitethebullet.co.uk/Email_Template_Framework.aspx

    Il fonctionne très bien sous ASP.NET et WinForms et est toujours en développement actif. Il y a aussi une très belle documentation et des exemples faciles à creuser.

    DotLiquid est un très bon système de template pour .NET.

    Il est dérivé de Mark’s Liquid Markup, avec les exigences .NET Framework 3.5 ou supérieur.

    Avez-vous vu NVelocity, un port .NET de Velocity? http://nvelocity.sourceforge.net/

    NVELOCITY, bien qu’ancien, date de la dernière sortie en 2003, assez.

    SharpTAL – moteur autonome en développement actif et sans dépendances, rapide

    XCST (modèles extensibles C-Sharp)

     
    • {n}