mai 9, 2023

Amélioration du routing en .NET 8

Avant l’arrivé de .NET 8.0, la construction des routes pour les contruscteurs ou les minimal API étaient fastidieuses car elles ressemblaient à cela :

app.MapGet("person/{id:Guid}",(Guid id) .........

Nous saisissions du texte pour définir notre route mais nous ne savions pas ce si ce que nous saisissions était juste.

Heureusement .NET améliore tout cela sur plusieurs axes :

  • Mise en évidence des routes avec les paramètres
  • Autocomplétion des paramètres et des noms de routes
  • Autocomplétion sur les contraintes de route
  • Ajout d’analyzers et de fixers pour les routes
  • Tout cela supporté pour :r Minimal APIs, controllers Web APIs et Blazor

Mise en évidence des routes avec les paramètres

ASP .NET Core 8.0 permet maintenant de mettre en évidence les paramètres de route comme suit :

Dans les controllers :

Avec les minimal API :

Autocomplétion des paramètres et des noms de routes

Si je reprends la Minimal API précédente et que je retire le query parameter , je vais pouvoir avoir de l’autocomplétion sur celui-ci :

Autocomplétion sur les contraintes de route

Je peux faire exactement la même chose pour les contraintes :

Ajout d’analyzers et de fixers pour les routes

En effet si je reprends ma minimal API et que je mets une contrainte de route qui ne correspond pas , je vais avoir un analyzer qui va comprendre que j’ai fait une erreur :

Si j’oublie une accolade dans ma route :

Il en existe bien d’autres qui sont détaillés dans le blog post que je mettrais en lien à la fin de l’article.

Pour moi c’est un énorme confort d’avoir toutes ces features en .NET car l’écriture de route était fastidieuse et était source de beaucoup d’erreurs et ici nous avons des moyens d’éviter toutes ces erreurs.

Si vous souhaitez tester tout cela, il vous faudra télécharger la preview de .NET 8.0 : https://dotnet.microsoft.com/en-us/next

Et aussi activer les préversions sur votre Visual Studio dans les options :

Voici le lien vers l’article original : https://devblogs.microsoft.com/dotnet/aspnet-core-route-tooling-dotnet-8/

Have fun coding ! 😎