web-dev-qa-db-fra.com

Quel est le moteur de vue? Que fait-il réellement?

J'ai commencé à apprendre ASP.NET MVC3. 

Ainsi, en lisant des tutoriels en ligne et dans des livres, je suis tombé sur ce terme "moteur de visualisation" assez fréquemment. Je ne sais pas ce que c'est. 

Que fait-il réellement? 

Pourquoi cela devrait-il m'importer?

40
Nawaz

Le moteur de vue est responsable de la création HTML à partir de vos vues. Les vues sont généralement une sorte de mélange de HTML et un langage de programmation. Le motif derrière la plupart d'entre eux s'appelle vue en deux étapes .

Par exemple, ASP.NET est livré avec son propre moteur de vue prêt à l'emploi. C’est celui où les vues ont beaucoup d’étiquettes comme <% %> et <%: %>. Il utilise l'extension .aspx.

Avec ASP.NET MVC3, un autre moteur de vue prêt à l'emploi a été ajouté, Razor , qui possède une syntaxe plus attrayante, par exemple. <div>@Model.UserName</div>.

Le choix du moteur de vue est important, car les ensembles de fonctionnalités des moteurs de vue sont très différents. Certains prennent en charge le rendu des fichiers PDF, par exemple; certains ne peuvent pas être utilisés en dehors d'un contexte Web (c'est le cas pour l'ancien moteur de vue ASP.NET), tandis que d'autres le peuvent (par exemple, Razor). Le rendu "hors ligne" des vues est pratique lorsque vous souhaitez créer des courriers électroniques HTML de la même manière que vous créez vos vues. Ces courriels doivent être envoyés par un opérateur en arrière-plan plutôt que par une application Web.

Il existe une comparaison intéressante des moteurs de vue asp.net ici sur SO.

La bonne nouvelle est que vous pouvez utiliser plusieurs moteurs de vue en parallèle dans ASP.NET MVC, bien que je ne le recommande pas, sauf en cas de nécessité.

Il existe déjà de très jolis points d’extension dans le moteur Razor. Par exemple, vous pouvez fournir une classe de base de vue personnalisée, un concept puissant qui facilite l'ajout de nombreuses fonctionnalités au bon endroit sans avoir à se soucier de tous les détails difficiles auxquels vous auriez à faire face autrement.

Je vais actuellement pour Razor.

47
mnemosyn

Le moteur de visualisation est ce qui est responsable du rendu de votre vue et de la conversion de votre code en HTML glorieux. En tant que tels, ils sont directement responsables de la façon dont vous devez écrire du code dans vos vues.

Il y en a essentiellement deux dont vous devez vous soucier: ASPX et Razor. Razor est, à mon avis, beaucoup plus élégant et facile à utiliser, au prix d’être supporté uniquement par MVC3.

Par exemple, un bloc de code dans ASPX pourrait ressembler à ceci:

<% foreach(var item in Model) { %>
    <tr>
        <td><%: item.Name %></td>
    </tr>
<% } %>

Alors que l’équivalent Razor ressemblera à ceci:

@foreach(var item in Model) {
    <tr>
        <td>@item.Name</td>
    </tr>
}
7
Andreas Eriksson

MVC utilise un moteur de vue pour rechercher et afficher les vues que vous demandez au contrôleur. Si vous êtes satisfait du routage par défaut, vous n'aurez probablement pas besoin de changer quoi que ce soit, mais supposons que vous souhaitiez que vos fichiers partagés soient généralement situés dans root/views/shared afin d'être situés dans root/common. besoin de créer pour pouvoir le faire.

Ici vous pouvez voir comment construire un moteur de visualisation:

http://coderjournal.com/2009/05/creating-your-first-mvc-viewengine/

Le moteur de vue est également responsable du rendu de la vue, mais comme vous venez d'apprendre à utiliser MVC, vous n'aurez probablement pas besoin de modifier la fonctionnalité de rendu pour l'instant.

2
Kasper Elbo

Dans MVC, le moteur de vue est celui qui fonctionne entre votre vue et votre navigateur pour fournir une sortie HTML valide à votre navigateur en compilant le code dans votre vue. Il existe de nombreux moteurs d'affichage et certains d'entre eux sont les suivants:

  1. ASPX

  2. Rasoir

  3. Étincelle

  4. NHaml

  5. NDJango

  6. Hasic

  7. Brail

  8. Bellevue

  9. Tuiles pointues

  10. Modèle de chaîne

  11. Battements d'aile

  12. SharpDOM

Actuellement, la plupart des développeurs préfèrent utiliser le moteur de vue Razor car il fournit un moyen très pratique de programmation. Tous ces moteurs de vue peuvent ne pas prendre en charge ASP.NET MVC.

Pour plus de détails, vous pouvez visiter cet article .

2
Daryl

View Engine fonctionne dans l'application pour rendre la page HTML au navigateur ou à l'utilisateur. Il peut contenir des balises HTML, des contrôles serveur et certains langages de programmation.

Razor est le moteur de visualisation préféré pour le framework MVC4.

1
Harsha.Vaswani

View Engine rend la vue au format HTML pour le navigateur. Si nous parlons d'une application MVC dans .Net Framework, elle prend en charge les 2 moteurs de vue suivants:

1. Razor View Engine2. Formulaire Web/ASPX View Engine

Différences:1. Razor View Engine utilise des présentations mais le moteur de vue ASPX utilise des pages maîtres.

2. Razor View Engine utilise une page partielle, mais le moteur de vue ASPX utilise le contrôle de l'utilisateur Web.

3. Le moteur d'affichage Razor n'est pas un langage, c'est une syntaxe de balisage.

4. Le symbole @ ’utilise le logiciel Razor Engine pour écrire le code. @ Html.ActionLink ("Login", "LoginView") Les délimiteurs <%: "sont utilisés comme point de départ et"%> "comme point final. Vous pouvez écrire le code entre eux dans ASPX Engine.

5. Razor View Engine est doté des extensions .cshtml (avec C #) et .vbhtml (avec VB) pour les vues, les présentations et les vues partielles . ASPX View Engine a une extension similaire à celle d'une application Web simple. aspx pour les vues, .acsx pour UserControls et .master pour les pages maîtres.

1
Santosh Rawat

J'ai lu un article descriptif sur http://questionbox.in/view-engine-asp-net-mvc-razor-view-engine-asp-net-mvc-web-form-aspx-view-engine-asp- net-mvc/

Le moteur de visualisation permet de rendre le code HTML de votre vue au navigateur.

ASP.NET MVC prend en charge de nombreux moteurs de vue, mais les moteurs de vue les plus utilisés sont

  • Formulaire Web/Moteur de vue ASPX.
  • Moteur de vue rasoir.

Moteur de vue de formulaire Web/Moteur de vue ASPX:

  • Le moteur de visualisation de formulaires Web/ASPX View Engine est le moteur de visualisation par défaut .__ pour le projet Asp.net MVC. Il est disponible à partir de MVC 1.0
  • L'espace de nom du moteur de formulaire Web est Web.Mvc.WebFormViewEngine.
  • L'extension de fichier pour ce moteur de visualisation est similaire à Web Form comme suit:

.aspx, pour les vues semblables aux pages de formulaire Web ..ascx, pour les vues partielles et le modèle d'éditeur, tout comme les contrôles utilisateur .. maître, pour la mise en page et les pages maîtres, tout comme les pages maîtres des formulaires Web.

  • Pas de support pour TDD (Test Driven Development).
  • Le moteur de formulaire Web n'empêche pas les attaques XSS signifie que tout script sauvegardédans la base de données sera déclenché lors du rendu de la page
  • Syntaxe: <%: Html.ActionLink (“Home”, “Index”)%>

Moteur de vue rasoir:

  • Razor View Engine est un moteur de visualisation avancé, disponible avec MVC 3.0 et versions ultérieures.
  • L'espace de noms pour le moteur de vue ASPX est Web.Razor.
  • L’extension de fichier pour ce moteur de visualisation est .cshtml (Razor C #), pour les vues, Vues partielles, modèle d’éditeur et pages de présentation. .vbhtml (RazorVB.NET), pour les vues, les vues partielles, les modèles de l'éditeur et les pages de présentation.
  • Prise en charge de TDD (Test Driven Development).
  • Razor Engine est un peu lent par rapport à Web Form Engine.
  • Razor Engine empêche les attaques XSS (attaques par scripts entre sites) signifieit encode le script ou les balises HTML telles que <,> avant le rendu à afficher.
  • La syntaxe Razor est facile à comprendre et beaucoup plus propre que la syntaxe Web Form Razor utilise @ symbol pour que le code ressemble à:

    @ Html.ActionLink (“Home”, “Index”)

1
Ganesh Todkar

Dans ASP.Net MVC, le moteur de vue est celui qui fonctionne entre votre vue et votre navigateur pour fournir une sortie HTML valide à votre navigateur en prenant en compte la sortie fournie par votre vue.

1) ASPX

2) rasoir

3) étincelle

4) NHaml

5) NDJango

6) Hasic

7) Brail

1
shubhankar

Jusqu'à présent, chaque réponse est liée à ASP.NET. Si vous recherchez un moteur de vue pour nodejs, voici certaines des options suivantes:

Jade (Pug)
express-handlebars
ejs
React

Il y en a toute une liste que j'ai trouvée sur https://github.com/expressjs/express/wiki#template-engines mais celles-ci semblent être celles que j'entends le plus souvent. 

0
Allan Holbrook