Ich weiß, dass Sie mehrere verschiedene View-Engines mit ASP.NET MVC verwenden können:
Die standardmäßige ASPX-View-Engine scheint für mich am sinnvollsten zu sein, da sie aus einem ASP.NET-WebForms-Hintergrund stammt.
Aber ich wollte mir eine Vorstellung von den Vor- und Nachteilen machen und sehen, was die meisten Leute benutzen.
Was benutzt StackOverflow?
Ich benutze Spark . Es hat einen schönen Fluss zwischen HTML und Code. Scott Hanselman hat auch einen Beitrag mit seinen wöchentlichen Quellcode-Review-Posts darauf geschrieben. Ich grabe es wirklich sehr. Eines der wichtigsten Features ist die Vorkompilierung Ihrer Ansichten.
"Was benutzt StackOverflow?"
Web Forms.
Ich habe Jeff Atwood über seine Entscheidung in seinem Tag Soup Post gefragt. Er antwortete nicht - ich denke, er war damit beschäftigt, ein fehlendes schließendes Etikett zu jagen; -)
NHaml ist mein Favorit für seine Kürze. Die Leute lieben es oder hassen es, da es sich sehr von einem traditionellen "HTML mit eingefügtem Code" Template-System wie ASPX oder NVelocity unterscheidet.
Bearbeiten:
@Ben,
Es gibt andere View-Engines, die kompiliert werden (NHaml ist eins), also unterstützen sie benutzerdefinierte HTML-Helfer. Ich wäre nicht überrascht zu sehen, dass die aktuell interpretierten View-Engines schließlich mit einem Kompilierungsmodell enden.
Die meisten Leute auf dem Planeten benutzen nur ASPX, weil sie das wissen. Ein weiterer ausgezeichneter Vorteil ist die kompilierte Natur ... so erhalten Sie nicht nur Typ-Sicherheit und Intellisense, sondern Sie können auch den Perf-Vorteil erhalten.
Der Nachteil, den ich sehe, ist, dass es so weitschweifig ist. Ich konvertierte eine App zu NVelocity und war erstaunt, wie sauber es aussah. Das Problem ist, dass es viele Dinge gab, die mit NVelocity nicht funktionierten (wie Ihre eigenen benutzerdefinierten Ansichtshelfer) und dass es an Dokumentation mangelte.
Ich habe eine Funktion zu MvcContrib hinzugefügt, wo Sie Ihre eigenen HtmlExtension-Typen registrieren können, aber es ist eher ein Bandaid, bis eine bessere Lösung herauskommt.
Ich habe NVelocity in der Vergangenheit benutzt. Zum größten Teil macht es den Code wirklich sauber und einfach zu folgen; Normalerweise sind es jedoch nur einige ViewData-Variablen, die vorher von XSLT-Dateien gefüllt wurden. Ich denke also, meine View Engine wäre sowohl XSLT (was eine Liebe / Hass-Sache ist - Extension-Methoden machen es wirklich nützlich) als auch NVelocity.
Tags und Links asp.net-mvc