jeudi, 28 mars 2024

À l’intérieur de la première version cloud de Microsoft .NET 7

La conférence .NET de cette année a vu le de .NET 7, la dernière version de la plate-forme open source la plus importante et la plus importante de Microsoft. Outre les outils sous-jacents, il existe de nouvelles versions de langage pour C # et F #, ainsi que le cadre d’interface utilisateur MAUI multiplateforme et une nouvelle version d’ASP.NET Core et Blazor pour le développement d’applications Web côté serveur et client. Il existe également une mise à jour majeure du cadre de développement d’applications distribuées d’Orléans, avec un nouveau schéma de nommage qui le synchronise enfin avec .NET.

Microsoft et la .NET Foundation ont réussi à faire passer la plate-forme à une cadence de mise à jour annuelle, en utilisant le développement ouvert pour hiérarchiser les fonctionnalités et intégrer le code fourni par la communauté. La transition du .NET Framework Windows uniquement vers .NET Core, et maintenant vers une seule version .NET a donné le titre nous une plate-forme de développement multiplateforme unique, s’appuyant sur le travail de l’équipe Mono pour ajouter le support Linux et macOS. Plus important encore, un ensemble commun de classes de base garantit que vous n’avez besoin de les apprendre qu’une seule fois et que vous pouvez les utiliser partout où .NET s’exécute.

Construire pour le cloud et les conteneurs

Alors que les précédentes versions majeures de .NET se concentraient sur les applications de bureau et mobiles, cette version contient beaucoup d’éléments pour le cloud et les applications d’entreprise modernes. Ce n’est pas surprenant, car la prise en charge multiplateforme facilite l’exécution du même code sur vos systèmes Windows Server que sur les serveurs Linux. Il a dû y avoir un travail de bas niveau important dans l’exécution et le compilateur pour prendre en charge les derniers jeux d’instructions Arm, des améliorations qui ont donné au code Arm .NET un coup de pouce jusqu’à 45 % par rapport aux versions précédentes sur le silicium Arm récent.

Il est clair que l’avenir de .NET est multiplateforme et cloud natif. Oui, Windows va être au cœur de la plate-forme, mais ce ne sera qu’une des nombreuses cibles grâce à une concentration accrue sur Blazor pour WebAssembly et sur les conteneurs à utiliser avec Kubernetes. Cette approche est facilitée par la présence d’une version Linux, car .NET peut désormais passer directement de votre IDE à un conteneur sans avoir besoin d’une copie de Docker. Au lieu d’avoir à publier votre code puis à le conditionner dans un conteneur, vous pouvez passer directement d’un projet à un conteneur, en utilisant un package de conteneur pour créer un conteneur à partir d’un répertoire, puis en le publiant en tant qu’image de conteneur Linux.

Il y a un avantage supplémentaire avec l’approche de .NET, car elle est indépendante de l’hôte de conteneur. Votre conteneur peut s’exécuter sur n’importe quelle plate-forme conforme aux normes. .NET fournira ses propres images de base, avec des versions distinctes pour ASP.NET Core, des applications autonomes et toutes les autres applications. Les images sous-jacentes sont basées sur Debian, vous devrez donc vous assurer de cibler directement les alternatives. Ce n’est pas tout à fait la vision des conteneurs distroless, mais si vous fournissez ASP.NET Core ou du code autonome, cela s’en rapproche car .NET fournit le strict minimum de ce qui est nécessaire pour exécuter votre code. Vous devez spécifier l’hôte Linux à l’avance pour l’instant, sauf si vous utilisez quelque chose comme Ubuntu.

Apporter un ciseau à Ubuntu

Microsoft a travaillé avec Canonical pour ajouter la prise en charge de .NET pour ses conteneurs Ubuntu ciselés. Il s’agit d’une image de base de conteneur relativement nouvelle d’Ubuntu qui réduit les packages Debian existants au strict minimum, en gardant la surface d’attaque petite. Comme ils sont destinés à des conteneurs idempotents à usage unique, créant de nouvelles images à chaque fois que vous créez une version, il n’y a pas de gestion interne des packages ni de shell, un peu comme la propre version Nano de Microsoft de Windows Server.

L’ajout de cette fonctionnalité à .NET en fait un citoyen de premier ordre dans l’écosystème cloud natif. Vous pourrez créer du code dans des conteneurs, le pousser directement vers un référentiel, puis utiliser des outils Kubernetes tels que Helm pour gérer les mises à jour et les déploiements d’applications. L’utilisation d’Azure DevOps ou de GitHub simplifiera le travail avec les propres outils Azure Kubernetes de Microsoft, y compris Azure Container Apps, et les instances cloud hybrides exécutées via Azure Arc sur Azure Stack HCI.

WebAssembly gagne rapidement en popularité en tant que moyen portable d’offrir des expériences utilisateur riches aux navigateurs. Les expériences de Microsoft avec Blazor se poursuivent dans .NET 7, ajoutant de nouvelles fonctionnalités de débogage. Il s’avère populaire auprès des partenaires : The Uno Platform ajoute des outils WebAssembly améliorés dans sa dernière version, qui est prête pour .NET 7. Cela inclut un meilleur ensemble d’outils de threading, améliorant considérablement les performances de WebAssembly. La prise en charge des threads est encore expérimentale, car les problèmes d’API de bas niveau dans JavaScript doivent encore être résolus.

.NET comme infrastructure

L’un des principaux moteurs de cette version est Azure, les outils .NET devenant de plus en plus importants pour la plate-forme. La combinaison du serveur Web Kestrel d’ASP.NET Core et du proxy inverse YARP a permis aux propres services cloud de Microsoft de réduire considérablement les coûts. Un exemple est Microsoft Graph, qui est un service ASP.NET Core traitant plus de 70 milliards de requêtes par jour. Les récentes versions de .NET ont permis au service de continuer à évoluer, tandis que les coûts ont chuté de 91 %. Azure App Service utilise Kestrel depuis un certain temps maintenant, avec une amélioration significative des performances. Il suffit d’un changement pour qu’il soit prévu de réduire le nombre de serveurs frontaux jusqu’à 50 %.

Azure bénéficiera d’une prise en charge immédiate de .NET 7 dans sa suite d’outils de plate-forme en tant que service, notamment Azure App Service et Azure Container Apps. Cela permettra à tout code de preuve de concept ou à toutes les applications basées sur les derniers aperçus de se lancer aussi rapidement que possible.

Dans le même temps, .NET 7 améliore ses outils de mise en réseau intégrés. La prise en charge de HTTP/3 vous permet de tirer rapidement parti des dernières fonctionnalités de performances Web, tout en permettant à votre code de passer des API REST complexes à des appels gRPC plus simples. Cette approche peut impliquer une réarchitecture des API et une refactorisation du code, mais elle pourrait accélérer considérablement les applications distribuées et les microservices.

Avoir des mises à niveau de composants comme celui-ci dans le cadre de .NET fait d’une mise à niveau logicielle une mise à niveau de l’infrastructure. En réduisant la charge sur l’infrastructure cloud, les opérateurs peuvent utiliser .NET pour réduire à la fois les dépenses d’investissement et d’exploitation, ce qui est de plus en plus important en période de précarité économique.

Comme toutes les versions .NET d’année paire, il s’agira d’une version STS (Standard-Term Support). La politique de Microsoft pour .NET est similaire à celle utilisée par d’autres projets open source, lui offrant six mois de support au-delà de la sortie de la prochaine version majeure. Comme .NET a une cadence annuelle, cela devrait vous donner un total de 18 mois de support, à condition que la version actuelle du correctif soit installée. La prochaine version LTS sera .NET 8.

Microsoft continue de faire évoluer .NET à un rythme rapide, en collaboration avec la .NET Foundation pour fournir les outils et les fonctionnalités que les utilisateurs souhaitent. Avec plus de 28 000 contributions de la communauté, la première grande expérience open source de Microsoft est clairement un succès.

.

Toute l’actualité en temps réel, est sur L’Entrepreneur

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici