Comment WebMatrix, Razor, les pages Web ASP.NET et MVC s'assemblent


Dans ce post, je voudrais clarifier la façon dont ces diverses briques logicielles s'emboîtent, car j'ai constaté une certaine confusion dans les commentaires des premiers utilisateurs que j'ai lu.
Création d'un projet ASP.NET MVC 3 avec Razor dans VS2010
WebMatrix: une pile et un outil
Commençons par WebMatrix. Le terme désigne effectivement à la fois un outil et un framework applicatif.

La pile WebMatrix contient un certain nombre de composants que vous obtenez lorsque vous l'installez via WebPI:

  • Le nouveau Framework ASP.NET Web Pages
  • Le moteur de templates Razor
  • L'outil WebMatrix (voir ci-dessous)
  • IIS Express
  • SQL CE 4

L'outil WebMatrix, qui vous permet d'effectuer différentes tâches:

  • Créer des applications Web qui utilisent le Framework ASP.NEW Web Pages et le moteur de templates Razor.
  • Installer des sites existants à partir de la Web Galery.
  • Gérer IIS Express.
  • Gérer les bases de données SQL CE 4.

Razor: un moteur de templates
À la base, Razor est juste un moteur de template, comparable à l'ASPX, NHaml ou à Spark. La meilleure façon de le décrire dans son sens le plus général est qu'il prend en entrée un fichier de modèle (avec une extension .cshtml ou .vbhtml) et certaines données. En résultat, il produit une chaîne de caractères. Dans un scénario de site web, ce sera typiquement un morceau de HTML qui sera ensuite retourné sur le flux HTTP. Razor, en soi, n'est donc pas lié ni à MVC, ni au Framework ASP.NET Web Pages. Il n'est même pas réellement lié aux applications web.

ASP.NET Web Pages: un framework simple pour écrire des applications web
WebMatrix introduit les ASP.NET Web Pages, qui offrent aux utilisateurs un moyen simple et puissant d'écriture de nouvelles applications ASP.NET. Cette technologie différe de WebForms car elle n'utilise pas de contrôles serveur.
Elle est également différente de ASP.NET MVC car elle ne suit pas le modèle MVC. Au lieu de cela, elle suit un modèle de "code en ligne" beaucoup plus simple, où une page est essentiellement une page HTML avec du code ajouté lorsque cela est nécessaire. En ce sens, elle n'est pas sans rappeler l'ASP classique, mais elle est aussi très différente car qu'elle a toute la puissance du framework .NET derrière elle. Elle supporte également des concepts tels que les pages de layout qui la rendent  beaucoup plus souple que l'ASP classique.

ASP.NET MVC
ASP.NET MVC ne fait pas partie de la distribution de WebMatrix. C'est un framework totalement différent, destiné aux applications professionnelles. Il faut cepedant noter que que le moteur de template Razor est également utilisable comme moteur de vue dans MVC.

Commentaires