Developpez.com - Rubrique .NET

Le Club des Développeurs et IT Pro

ASP.NET Core 2.1 : Introduction à Razor Class Librairy,

Un tutoriel par Hinault Romaric

Le 07/09/2018, par Hinault Romaric, Responsable .NET
Dans ce billet de blog, je vais revenir sur l’une des nouveautés de ASP.NET Core 2.1, que je trouve très intéressante. Il s’agit de Razor Class Library. Cette fonctionnalité attire mon attention aujourd’hui parce que j’avais déjà eu un besoin pareil sur l’un des projets sur lesquels je suis intervenu. J’ai encore été interpellé récemment sur un besoin pareil.

Pour partager et réutiliser du code, il faut passer par des librairies de classes. Les classes sont compilées et générées dans des assemblies qui pourront ensuite être utilisées dans d’autres applications. Malheureusement, dans ces assemblies, il n’est pas possible d’inclure du code d’interface, notamment du code Razor.

Pour un développeur ASP.NET, la réutilisation du code va au-delà des classes. Il aimerait être en mesure de partager plus. Supposons que vous avez mis en place un module d’authentification qui va être intégré et utilisé par toutes les applications Web de votre entreprise. Le module d’authentification inclut les vues cshtml, le modèle et les contrôleurs. Pour partager ce code, vous serez obligé de copier ces fichiers dans chaque projet.

Avec Razor Class Librairy, ces fichiers seront compilés dans une librairie de classes réutilisable. La création d’un projet de librairie de classes Razor se fait en utilisant la commande :

Code :
dotnet new razorclasslib
Cela va permettre de créer un projet Razor Class Librairy en utilisant le nouveau modèle de projet qui a été créé à cet effet.
La structure proposée repose par défaut sur des Area et ASP.NET Razor Pages :




Vous pouvez utiliser MVC si vous le souhaitez.

Le projet créé malgré la présence des fichiers cshtml est une librairie de classes. De ce fait, ce dernier ne peut pas être exécuté, car il ne dispose pas d’un exécutable. Vous n’êtes donc pas en mesure de visualiser vos pages dans un navigateur, à défaut de l’intégrer dans un projet Web exécutable.


Une fois que votre librairie de classes Razor est prête à être utilisée, vous pouvez la partager comme toute librairie .NET et l’intégrer dans le projet client. La sortie de la librairie est un fichier RazorClassLibrary.dll et un fichier RazorClassLibrary.Views.dll. Le fichier RazorClassLibrary.Views.dll est la compilation du contenu Razor.



Une fois le package ajouté à votre projet, vous pouvez visualiser le résultat en utilisant l’adresse correspondante :


Vous pouvez apporter votre propre implémentation de la page. Il vous suffit de respecter la même hiérarchie et créer un fichier .cshtml ayant le même nom.



En effet, le système de routage d’ASP.NET cherche d’abord le fichier correspondant dans le projet, avant de rechercher si ce dernier existe dans la librairie de classes Razor.



Razor Class Library est une nouveauté intéressante qui rendra encore plus productifs les développeurs Web.

Téléchargez ASP.NET Core 2.1

En savoir plus sur Razor Class Librairy
  Billet blog