
Microsoft a publi en aot .NET 7 Preview 7. The enterprise a annonc qu’il s’agit du dernier aperu de .NET 7 et que la prochaine version sera premire release candidate (RC). Cet aperu de .NET 7 comprenait des amliorations de System.LINQ, des permissions de fichiers Unix, des structures de bas niveau, de la gnration de sources p / Invoke, de la gnration de code et des websockets. Aujourdhui, Jeremy Likness, Angelos Petropoulos, Jon Douglas, membres de lquipe de .NET de Microsot ont annonc .NET 7 Release Candidate 1.
.NET 7 est le .NET le plus rapid ce jour. Plus d’un millier d’amliorations ayant un impact sur les performances ont t apportes .NET 7, notamment en ce here concerns the rflexion, le remplacement des piles (OSR), le temps de dmarrage, AOT natif, optimization des boucles et de nombreux autres domaines.
Lorsque le dveloppement de .NET 7 a commenc, Microsoft a expliqu la communaut que cette nouvelle version unifiera enfin tous les composants disparates des outils de dveloppement .NET, permant aux dveloppeurs de crer tous les types d’applications – bureautiques, mobiles, Web et autres – sur la mme bibliothque de classes de base (BCL), le mme moteur d’excution et les mmes compilateurs. C’tait en fait l’objectif de .NET 5 – qui succde aux offres .NET Core – lorsqu’il a fait ses dbuts in November 2020. Mais des problmes de dveloppement exacerbs par la pandmie n’ont pas permis d’atteindre cet objectif.
Indeed, tous les lments prvus n’ont pas t intgrs .NET 5 et ont t reports jusqu ‘l’arrive de .NET 6 in November 2021 en tant que version LTS (Long Term Support). Mais mme ce moment-l, l’effort d’unification global de Microsoft tait incomplet, car certains composants, tels que .NET Multi-platform App UI (.NET MAUI), n’ont pas respect le calendrier. .NET MAUI to depuis attint the gnral availability, et unification complte est dsormais attendue pour November. Lors de la clbration des 20 ans de .NET en fvrier dernier, Microsoft a retr son intention d’unifier tous les composants du framework partir de .NET 7.
.NET 7 Release Candidate 1 at test with Visual Studio 17.4 Preview 2. The best recommendation is to use the builds of the canal preview if you want .NET 7 with the products of the Visual Studio family. Sous macOS, the est recommand d’utiliser la dernire version de Visual Studio 2022 for Mac.
.NET Multi-platform App UI
NET Multi-platform App UI (MAUI) unifie les API Android, iOS, macOS et Windows en une seule API afin que vous puissiez crire une application qui fonctionne nativement sur plusieurs plateformes. .NET MAUI permet d’offrir les meilleures expriences d’application conues spcifiquement pour chaque plateforme (Android, iOS, macOS, Windows et Tizen) tout en vous permant de crer une exprience de marque cohrente grce un style et des graphiques riches. Chaque plateforme est prte l’emploi et se comporte comme elle le devrait, sans widgets ni style supplmentaires.
L’objectif principal de .NET MAUI est de permre aux utilisateurs d’offrir la meilleure exprience d’application telle qu’elle at conue spcialement pour chaque plateforme (Android, iOS, macOS, Windows et Tizen grce la collaboration avec Samsung), tout en permant de crer des expriences de marque cohrentes grce a style et des graphiques riches.
Ds le dpart, chaque plateforme a apparence et le comportement qu’elle devrait avoir, sans qu’il soit ncessaire d’Imiter des widgets ou des styles supplmentaires. For example, .NET MAUI sur Windows est soutenu par WinUI 3, the premier composant of interface utilisateur natif livr avec le SDK Windows App.
In the cadre of .NET 7, .NET MAUI fournit a unique project here gre le ciblage multiple des appearils et de leurs plateformes. The Visual Studio exploitation allows the testers .NET MAUI avec .NET 7 is available in the prochaine version 17.4 Preview 2.1.
.NET MAUI fournit des API pour accder aux services et aux fonctionnalits de chaque plateforme, tels que acclromtre, les actions d’application, le systme de fichiers, les notifications, et bien d’autres choses encore. Dans cet exemple, nous configurons des actions d’application qui ajoutent des options de menu l’icne de l’application sur chaque plateforme:
|
1 |
AppActions.SetAsync( new AppAction("current_info", "Check Current Weather", icon: "current_info"), new AppAction("add_location", "Add a Location", icon: "add_location") ); |
Optimis pour la vitesse
.NET MAUI est conu pour les performances. Vous nous avez dit that point il est essentiel que vos applications dmarrent le plus rapidement possible, notamment sur Android. The interface contrles utilisateur de .NET MAUI put in work a model of gestionnaire-mapur fin et dcoupl par rapport aux contrles de la plate-forme native. Cela rduit le nombre de couches dans le rendu de the interface utilisateur et simplifie the personnalisation des contrles.
The mises en page of .NET MAUI ont t conues for utilizer a model of gestionnaire cohrent qui optimise les boucles de mesure et d'Arrangement to acclrer le rendu et la mise jour de interface utilisateur. Microsoft a galement mis en place des dispositions pr-optimises pour des scnarios spcifiques tels que HorizontalStackLayout et VerticalStackLayout en plus de StackLayout.
Avec pour objectif d'amliorer les performances au dmarrage et de maintenir ou de rduire the taille des applications lors de la transition vers .NET 6. Microsoft obtient an amlioration de 34.9% pour .NET MAUI et de 39.4% pour. NET pour Android. Ces gains s'tendent galement aux applications complexes; the application d'exemple .NET Podcast a dmarr avec a dmarrage temps de 1299 ms, il est de 814,2 ms, soit une amlioration de 37,3% depuis la preview 13.
Cloud Native
Les conteneurs sont devenus un des moyens les plus faciles de distribuer et d'excuter a large ventail d'applications et de services dans le cloud. The .NET Runtime at renforc pour les conteneurs il ya plusieurs annes. Il est maintenant possible de crer des versions conteneurises de vos applications avec seulement dotnet publish. The images of content sont dsormais a type de sortie pris en charge par le SDK .NET.
Le cloud native is an ensemble de bonnes pratiques pour crer des applications pour et dans le cloud afin de profiter de la rsilience, de l'volutivit, de l'effectiveness et de la rapidit. .NET peut three utilis pour crer des applications natives pour le cloud.
ARM64
.NET aide crer des applications here fonctionnent sur les appearils ARM. The .NET team will continuously improve the performances of .NET 7 pour Arm64. L'architecture du jeu d'instructions ou l'ISA de x64 et d'Arm64 est diffrente pour chacune d'entre elles et cette diffrence est toujours mise en vidence sous la forme de performance. Bien que cette diffrence exists between the deux plateformes, essayons de comprendre les performances de .NET sur les plateformes Arm64 par rapport x64.
Lobjectif de Microsoft dans .NET 7 n'tait pas seulement d'atteindre the parity of performance between x64 and Arm64, but also fournir des indications claires sur ce quon doit attendre lorsquon dplace les applications .NET de x64 Arm64.
He put the chelle du pool de threads
A significant gradation of performances on the machines plus grand nombre de curs (32+) at constat. For example, on the Ampre machines, the performances ont chut de prs de 80%. En d'autres termes, le nombre de requtes / secondes (RPS) tait plus lev sur 28 curs que sur 80 curs. The problme sous-jacent tait la faon dont les threads utilisaient et interrogeaient la file d'attente global partage.
Lorsqu'un thread de travail avait besoin de plus de travail, il interrogeait la file d'attente global pour voir s'il y avait plus de travail faire. On the machines fort nombre de curs, avec plus de threads impliqus, the y avait beaucoup de conflits lors de accs the global attention file. Plusieurs threads essayaient d'acqurir un verrou sur the file of global attention avant d'accder son contents. Cela entranait a blocage et donc une gradation des performances.
The problme de mise l'chelle du pool de threads n'est pas seulement limit aux machines Arm64 mais est vrai pour toutes les machines qui ont un nombre de curs plus lev. Ce problme at corrig dans dotnet / runtime # 69386 et dotnet / aspnetcore # 42237 as le montre le graphique ci-dessous. Bien que cela montre des amliorations significatives, nous pouvons remarquer que la performance n'volue pas de faon linaire avec plus de curs de machine.
He put the chelle du pool de threads
A significant gradation of performances on the machines plus grand nombre de curs (32+) at constat. For example, on the Ampre machines, the performances ont chut de prs de 80%. En d'autres termes, le nombre de requtes / secondes (RPS) tait plus lev sur 28 curs que sur 80 curs. The problme sous-jacent tait la faon dont les threads utilisaient et interrogeaient la file d'attente global partage.
Lorsqu'un thread de travail avait besoin de plus de travail, il interrogeait la file d'attente global pour voir s'il y avait plus de travail faire. On the machines fort nombre de curs, avec plus de threads impliqus, the y avait beaucoup de conflits lors de accs the global attention file. Plusieurs threads essayaient d'acqurir un verrou sur the file of global attention avant d'accder son contents. Cela entranait a blocage et donc une gradation des performances.
The problme de mise l'chelle du pool de threads n'est pas seulement limit aux machines Arm64 mais est vrai pour toutes les machines qui ont un nombre de curs plus lev. Ce problme at corrig dans dotnet / runtime # 69386 et dotnet / aspnetcore # 42237 as le montre le graphique ci-dessous. Bien que cela montre des amliorations significatives, nous pouvons remarquer que la performance n'volue pas de faon linaire avec plus de curs de machine.
Source: Microsoft
Et vous?
Quel est votre avis sur le sujet?
Voir aussi:
Microsoft announces the availability of .NET 6 Preview 4 here brings the exprience Hot Reload, Visual Studio et aux outils de ligne de commande
Google Chrome and Microsoft Edge will take charge of the fonction de scurit CET d'Intel, pour maintenir la scurit et prvenir des vulnrabilits
Visual Studio 2022 Preview 4 est disponible et s'accompagne d'amliorations sur la productivit personnelle et d'quipe, le chargement chaud dans ASP.NET Core et la gestion de thmes
Red Hat announces un RHEL sans frais pour les petits environnements de production, notamment pour les charges de travail de production avec jusqu '16 serveurs de production



