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 : | Sélectionner tout |
dotnet new razorclasslib
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