Puoi consigliare un motore di template .net?

Sto cercando un motore di template .net – qualcosa di semplice, leggero, stabile con non troppe dipendenze. Tutto ciò di cui ho bisogno al momento è creare testo in formato semplice e email html. Qualcuno può darmi una buona raccomandazione?

Se aiuta affatto – qualcosa come le librerie di Freemarker o Velocity di Java.

[AGGIORNAMENTO] Grazie per le risposte finora – molto apprezzato. Sono davvero interessato a raccomandazioni o storie di guerra da quando hai usato queste librerie. Sembra essere il modo migliore per prendere una decisione senza provarci a turno.

Ecco un altro paio:

  • NHaml
  • Scintilla
  • Brail (può essere usato standalone )

A proposito di NVelocity, è stato biforcato dai ragazzi del Castello, è stato sviluppato qui

Per le email, non ho mai avuto bisogno di più di NVelocity.

Elenco più completo

  • Motore di visualizzazione WebForm integrato in ASP.Net
  • ASPView
  • Brail
  • NHaml (.Net port di Haml)
  • Scintilla
  • NVelocity
  • StringTemplate.Net

Consiglierei CodeSmith Generator . È un generatore di codice basato su template, con aggiornamenti costanti e una community triggers. Ecco un elenco di modelli forniti con CodeSmith Generator.

RazorEngine, un motore di template basato sul motore di analisi Razor di Microsoft.

https://github.com/Antaris/RazorEngine

Non l’ho usato, ma lo trovo interessante perché se hai uno sfondo ASP.NET MVC, non avrai bisogno di imparare qualcosa di nuovo.

modello di stringa degli anltr.org con una versione C # .

Ho appena pubblicato un progetto open source. Si rivolge principalmente ai modelli di posta elettronica, ma è ansible utilizzare il parser da solo se lo si desidera. Puoi leggere altri dettagli e prendere il codice sorgente dal mio blog.

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

Penso che Mustache (http://mustache.github.com/) possa adattarsi anche al conto.

Alcuni test con Handlebars, RazorEngine e SharpTAL di seguito:

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

@Model.Title

@if(Model.Condition1) { condition1 is true }
@foreach(var movie in Model.Movies) {@movie}
"; //burning Engine.Razor.RunCompile(razorTemplate, "templateKey", typeof(Test), new Test()); sw.Start(); var result1 = Engine.Razor.RunCompile(razorTemplate, "templateKey", typeof(Test), new Test()); sw.Stop(); Console.WriteLine("razor : "+sw.Elapsed); //SHARPTAL string 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 string handleBarsTemplate = @"

{{Title}}

{{#if Condition1}} condition1 is true {{/if}}
{{#each Movies}} {{this}} {{/each}}
"; var tt3 = Handlebars.Compile(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 string 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."; } } }

e risultati:

risultati del codice

prova questo: Email Template Framework http://www.bitethebullet.co.uk/Email_Template_Framework.aspx

Funziona perfettamente con ASP.NET e WinForms ed è ancora in fase di sviluppo attivo. C’è anche una documentazione molto bella e facile da trovare negli esempi.

DotLiquid è un ottimo sistema di template per .NET.

È derivato da Liquid Markup di Ruby, con requisiti .NET Framework 3.5 o successivo.

Hai visto NVelocity, una porta .NET di Velocity? http://nvelocity.sourceforge.net/

NVELOCITY, anche se è vecchia, l’ultima versione nel 2003, abbastanza.

SharpTAL : motore autonomo in sviluppo attivo e senza dipendenze, veloce

XCST (eXtensible C-Sharp Templates)

 
  • {n}