.NET 7 est arrivé ! Résumé de la .NET Conf 2022

minia avec robot qui pilote un drone

Vous n’avez pas eu le temps de regarder la .NET Conf 2022 ? Pas de problème! Voici un résumé rapide des nouveautés présentées lors de la keynote.

C’est quoi .NET Conf 2022 ?

La .NET Conf, c’est un évènement organisé annuellement par Microsoft pour présenter les dernières nouveautés concernant l’écosystème .NET.

Microsoft décrit l’évènement comme la « plus grande célébration .NET de l’année » (Biggest celebration of .NET dans la langue de l’Oncle Sam).

Un superlatif que je qualifierais d’ à l’américaine, car je pense sincèrement qu’on peut faire plus big qu’une diffusion en direct full distanciel.

Cependant, cela ne les a pas empêché de célébrer les nouveautés des nombreuses composantes de l’écosystème .NET 7: Web, Cloud, Conteneurs, Client lourd

Allons voir ça plus en détail. Comme le dit si bien David Tennant : Allons-y !

allonsy

Le bilan de .NET 6

Présenté par Scott Hunter et Gaurav Seth, respectivement VP of Azure Experience et PM de .NET


Gaurav commence la keynote en annonçant les chiffres dithyrambiques de .NET 6:

  • 5,7 millions d’utilisateurs de .NET 6.
  • Le framework le plus aimé sur StackOverflow (merci Jon Skeet)

D’autres chiffres sont tout aussi louables:

  • Top 5 des langages de programmation sur GitHub
  • Top 5 des projets open source ayant la plus grande vélocité

Se basant sur ce bilan satisfaisant, ils ont annoncé en grandes pompes la sortie de .NET 7 !

En citant Satya Nadella, ils ont insisté sur le caractère de .NET à avoir évolué vers le Do more with less. Cela signifie que les développeurs tendent vers l’utilisation d’outils très complets et puissants pour les développeurs, qui gardent tout de même une certaine simplicité d’utilisation.

Les nouveautés de cette release sont nombreuses, tant est qu’il est compliqué de tout résumer dans une seule Keynote. En sortent tout de même quelques nouveautés clefs:

  • Plus de 1000 améliorations de performance (cet incroyable article de Stephen Toub détaille admirablement toutes ces améliorations)
  • Support natif de .NET 7 pour les processeurs ARM64 (Apple Silicon, Qualcomm Snapdragon…)
  • Améliorations d’ASP.NET Core.
  • Prise en charge améliorée de Linux.
  • Prise en charge améliorée des applications cloud native
  • Améliorations de C#11
  • Améliorations de NuGet avec notamment l’arrivée de la MFA.
  • Mise en production de .NET MAUI

ASP.NET Core

Présenté par Safia & Julia, Ingénieures Logiciel à Microsoft

Il y a beaucoup de nouveautés concernant ASP.NET Core dans cette release de .NET 7.

La nouveauté la plus marquante est sans doute les «endpoint groups».

Endpoint groups

Cette nouveauté permet aux endpoints d’une minimal API qui partagent la même resource d’être définis sous la même bannière.

Le code parle plus qu’une longue explication. Basons nous sur un code classique d’une minimal API:

// Sans endpoint groups
app.MapGet("/grenouilles", (GrenouillesRepository repo) => repo.GetAll());
app.MapPost("/grenouilles", (Grenouille g, GrenouillesRepository repo) => repo.Add(g));
app.Run();

Avec les endpoint groups, il est possible de refactorer ce code en:

// Avec endpoint groups
var grenouilles = app.MapGroup("/grenouilles");

grenouilles.MapGet("/", (GrenouillesRepository repo) => repo.GetAll());
grenouilles.MapPost("/", (Grenouille g, GrenouillesRepository repo) => repo.Add(g));

app.Run();

On peut voir ici que l’on regroupe les endpoints relatifs à la ressource grenouilles entre eux. Cela permet de réduire le code boilerplate relatif à un endpoint, et ainsi d’améliorer la productivité du développeur.

En soi, cela permet aux minimal APIs d’avoir un ersatz du contrôleur MVC, en plus simple.

Autres nouveautés

D’autres nouveautés sont à retenir comme :

  • l’arrivée du Rate limiting, permettant d’améliorer les performances en cas de nombreux appels HTTP.
  • Le CLI dotnet user-jwts, pour générer des jetons JWT à passer aux interfaces de Swagger. (Prononcés « jowt » par Microsoft)
  • Les nouveaux DevTunnels. C’est une feature qui permet de déboguer en équipe. Cela permet de déclencher un breakpoint sur une machine locale à partir de l’ordinateur d’un collègue ! Tout cela grâce à un domaine internet public qui pointe sur sa propre machine. Un truc de dingue.
  • Les Blazor Custom Components. Cela permet à un dev d’appeler un composant blazor au sein d’une page HTML.

Cloud Native & Containers

Présenté par David Fowler, créateur de SignalR.

.NET 7 se tourne résolument vers l’infrastructure des conteneurs dans le cloud.

Azure

Dans cette optique, Microsoft a annoncé des nouveautés liées à Azure.

Azure Container Apps

Les Azure Container Apps sont le pendant conteneur des Azure App Service.

Elles consistent en une pool Kubernetes entièrement managée.

Pool dans laquelle votre appli est déployée sans douleur, et scalée (mise à l’échelle) à la demande.

Azure Inbound Processing

Le service Azure API Management Service s’enrichit de la feature Inbound Processing, qui permet de modifier une requête HTTP avant qu’elle atteigne le serveur/backend. Plutôt cool !

Conteneurs

Au sein d’Ubuntu, .NET est maintenant un outil in-box, ce qui signifie que l’on peut désormais apt-get dotnet ! C’est assez incroyable et inédit, et cela va changer le quotidien de nombreux DevOps.

Passons aussi rapidement sur d’autres nouveautés liées aux conteneurs:

  • La taille de l’image Docker de .NET 7 se retrouve aussi réduite, permettant des déploiements plus rapides.
  • La performance de .NET 7 sur ARM est désormais équivalente à celle des processeurs x64.
  • Une nouvelle commande du CLI pour publier un exécutable .NET en conteneur:
dotnet publish -r linux-x64 /t:PublishContainer -c Release

C#11

Présenté par Christopher Jamme de Lagoutine (!)

C#11 fait partie des incontournables de .NET 7.

Ce dernier introduit de nombreuses nouveautés, et cette .NET Conf a permis d’en présenter quelques unes.

Bon, à votre grand regret (je le sais 😏), je n’étais effectivement pas présentateur de cette édition. Cependant, nous avons couvert la plupart des nouveautés de C#11 dans nos précédents articles, comme:

Jetez-y un oeil !

.NET MAUI

maui taken very seriously

Présenté par Maddy Montaquila, PM pour .NET MAUI… En chemise hawaiienne !

.NET MAUI, pour rappel, est un framework développé par Microsoft qui permet de déployer des applications cross-platform pour mobile et bureau avec XAML. C’est en réalité le successeur de Xamarin.

Ils ont déployé la dernière version de .NET MAUI, ce qui signifie qu’il est maintenant possible de tirer parti du plein potentiel de ce cadriciel.

De nouvelles fonctionnalités sont au rendez-vous: Tooltip, Pointer Hover, Context menu (le clic droit).

Ils ont également annoncé le support officiel des appareils pliables comme la Surface Duo et le Samsung Galaxy Fold.

Conclusion

Microsoft a annoncé dans cette Keynote une pléthore de nouveautés concernant .NET. La firme de Redmond a démontré que le potentiel de .NET sur tout système d’exploitation est plus fort que jamais.

.NET Conf, ça a aussi été l’occasion pour Microsoft d’inviter StackOverflow pour savoir comment ils utilisent .NET. Nous en parlerons dans un prochain article !

Je conclurai avec les mots de Jodie Whittaker:

brilliant

Christopher Jamme de Lagoutine

Software Craftsman à Code Insider, Christopher a acquis au fil de son expérience de solides bases en ingénierie web, en intégration continue et en architecture cloud. Durant son temps libre, il aime développer des applications natives.

Vous aimerez aussi...

2 réponses

  1. Kuranda Serge dit :
    // Sans endpoint groups
    app.MapGet(« /grenouilles », (GrenouillesRepository repo) => repo.GetAll());
    app.MapGet(« /grenouilles », (Grenouille g, GrenouillesRepository repo) => repo.Add(g));
    app.Run();

    I suppose second MapGet should be a MapPost ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.