Il motore di visualizzazione è responsabile della creazione di HTML dal tuo visualizzazioni. Le viste sono di solito una sorta di mix di HTML e un linguaggio di programmazione. Lo schema dietro la maggior parte di questi è chiamato two-step view.
Ad esempio, ASP.NET viene fornito con il proprio motore di visualizzazione fuori dalla scatola. Questo è quello in cui le visualizzazioni hanno molti tag come <% %>
e <%: %>
. Usa l'estensione del file .aspx
.
Con ASP.NET MVC3, è stato aggiunto un altro motore di visualizzazione pronto all'uso, Razor, che presenta una sintassi più accattivante, ad es. <div>@Model.UserName</div>
.
La scelta del motore di visualizzazione è importante, perché i set di funzionalità dei motori di visualizzazione sono molto diversi. Alcuni supportano il rendering in file PDF, ad esempio; alcuni non possono essere utilizzati al di fuori di un contesto Web (questo è vero per il vecchio motore di visualizzazione ASP.NET), mentre altri possono (ad esempio Razor). Il rendering di viste "offline" è utile quando si desidera creare email HTML nello stesso modo in cui si costruiscono le visualizzazioni e tali e-mail devono essere inviate da un lavoratore in background piuttosto che da un'applicazione web.
C'è un bel confronto di asp.net view engines qui su SO.
La buona notizia è che è possibile utilizzare più motori di visualizzazione in parallelo in ASP.NET MVC, anche se non lo consiglierei se non necessario.
Ci sono già alcuni punti di estensione molto belli nel motore Razor. Ad esempio, puoi fornire una classe di base di visualizzazione personalizzata, un concetto potente che semplifica l'aggiunta di molte funzionalità nel posto giusto, senza dover confondere con tutti i dettagli più grossi che altrimenti dovresti affrontare.
Attualmente mi piacerebbe andare a Rasoio.
Potete per favore mostrarmi (mandami un collegamento) su come renderizzare ViewEngines offline? – gillyb
@gillyb: la soluzione migliore è http://razorengine.codeplex.com/, che consente di visualizzare le visualizzazioni Razor al di fuori di un contesto ASP. – mnemosyn