mercredi 9 novembre 2022

Microsoft .NET 7.0.0 Runtime / SDK 7.0.100

Microsoft .NET est une plate-forme de développement open source multiplateforme gratuite pour la création de nombreux types d'applications.

Avec Microsoft .NET, vous pouvez utiliser plusieurs langues, éditeurs et bibliothèques pour créer pour le Web, le mobile, le bureau, les jeux et l'IoT.

Vous pouvez écrire des applications .NET en C #, F # ou Visual Basic.

  • C # est un langage de programmation simple, moderne, orienté objet et de type sécurisé.
  • F # est un langage de programmation fonctionnel multiplateforme et open source pour .NET. Il inclut également la programmation orientée objet et impérative.
  • Visual Basic est un langage accessible avec une syntaxe simple pour créer des applications orientées objet de type sécurisé.

Plateforme croisée :

Que vous travailliez en C #, F # ou Visual Basic, votre code s'exécutera en mode natif sur n'importe quel système d'exploitation compatible. Différentes implémentations .NET gèrent le gros du travail à votre place:

  • .NET Core est une implémentation .NET multiplateforme pour les sites Web, les serveurs et les applications de console sous Windows, Linux et MacOs.
  • .NET Framework prend en charge les sites Web, les services, les applications de bureau et plus encore sous Windows.
  • Xamarin / Mono est une implémentation .NET pour exécuter des applications sur tous les principaux systèmes d'exploitation mobiles.

Une API cohérente :

.NET Standard est un ensemble de base d'API communes à toutes les implémentations .NET.

Chaque implémentation peut également exposer des API supplémentaires spécifiques aux systèmes d'exploitation sur lesquels elle s'exécute. Par exemple, .NET Framework est une implémentation .NET pour Windows uniquement qui inclut des API pour accéder au registre Windows.

Page d’accueil : Microsoft .NET

.NET 7 est le successeur de .NET 6 et se concentre sur l’unification, la modernité, la simplicité et la rapidité. .NET 7 sera pris en charge pendant 18 mois en tant que version sts (anciennement version actuelle ).

Cet article répertorie les nouvelles fonctionnalités de .NET 7 et fournit des liens vers des informations plus détaillées sur chacune d’elles.

Performances

Les performances sont un élément clé de .NET 7, et toutes ses fonctionnalités sont conçues en tenant compte des performances. En outre, .NET 7 inclut les améliorations suivantes visant uniquement les performances :

  • Le remplacement sur pile (OSR) est un complément à la compilation hiérarchisé. Il permet au runtime de modifier le code exécuté par une méthode en cours d’exécution au milieu de son exécution (autrement dit, alors qu’il est « sur pile »). Les méthodes longues peuvent basculer vers des versions plus optimisées à la mi-exécution.
  • L’optimisation guidée par les profils (PGO) fonctionne désormais avec OSR et est plus facile à activer (en ajoutant <TieredPGO>true</TieredPGO> à votre fichier projet). PGO peut également instrumenter et optimiser des éléments supplémentaires, tels que des délégués.
  • Amélioration de la génération de code pour Arm64.
  • L’AOT natif produit un exécutable autonome au format de fichier de la plateforme cible sans dépendance externe. Il est entièrement natif, sans il ni JIT, et offre un temps de démarrage rapide et un petit déploiement autonome. Dans .NET 7, Native AOT se concentre sur les applications console et nécessite la suppression des applications.
  • Améliorations des performances du runtime Mono, qui alimente les applications Blazor WebAssembly, Android et iOS.

Pour obtenir un aperçu détaillé de la plupart des fonctionnalités axées sur les performances qui rendent .NET 7 si rapide, consultez le billet de blog Améliorations des performances dans .NET 7 .

Sérialisation System.Text.Json

.NET 7 inclut des améliorations apportées à la sérialisation de System.Text.Json dans les domaines suivants :

  • La personnalisation du contrat vous permet de mieux contrôler la façon dont les types sont sérialisés et désérialisés. Pour plus d’informations, consultez Personnaliser un contrat JSON.
  • Sérialisation polymorphe pour les hiérarchies de types définies par l’utilisateur. Pour plus d’informations, consultez Sérialiser les propriétés des classes dérivées.
  • Prise en charge des membres requis, qui sont des propriétés qui doivent être présentes dans la charge utile JSON pour que la désérialisation réussisse. Pour plus d’informations, consultez Propriétés requises.

Pour plus d’informations sur ces mises à jour et d’autres, consultez le billet de blog Nouveautés de System.Text.Json dans .NET 7 .

Mathématiques génériques

.NET 7 et C# 11 incluent des innovations qui vous permettent d’effectuer des opérations mathématiques de manière générique, c’est-à-dire sans avoir à connaître le type exact avec lequel vous travaillez. Par exemple, si vous souhaitez écrire une méthode qui ajoute deux nombres, vous deviez auparavant ajouter une surcharge de la méthode pour chaque type. Vous pouvez maintenant écrire une méthode générique unique, où le paramètre de type est contraint d’être un type de type numérique. Pour plus d’informations, consultez l’article Mathématiques génériques et le billet de blog sur les mathématiques génériques .

Expressions régulières

. La bibliothèque d’expressions régulières de NET a connu des améliorations fonctionnelles et de performances significatives dans .NET 7 :

  • La nouvelle option RegexOptions.NonBacktracking permet la mise en correspondance à l’aide d’une approche qui évite le retour en arrière et garantit un traitement en temps linéaire dans la longueur de l’entrée. Le moteur de non-suivi ne peut pas être utilisé dans une recherche de droite à gauche et un a quelques autres restrictions, mais il est rapide pour toutes les expressions et entrées régulières.

  • Les générateurs de sources d’expressions régulières sont nouveaux. Les générateurs sources créent un moteur optimisé pour votre modèle au moment de la compilation, ce qui offre des avantages en matière de performances de débit. La source émise fait partie de votre projet, ce qui vous permet de l’afficher et de le déboguer. En outre, un nouveau générateur de sources SYSLIB1045 vous avertit des emplacements que vous utilisez Regex et qui peuvent être convertis en générateur source. Pour plus d’informations, consultez Générateurs de sources d’expressions régulières .NET.

  • Pour les recherches qui ne respectent pas la casse, .NET 7 inclut des gains de performances importants. Les gains viennent du fait que la spécification n’appelle RegexOptions.IgnoreCaseToLower plus sur chaque caractère du modèle et sur chaque caractère dans l’entrée. Au lieu de cela, tout le travail lié à la casse est effectué lorsque le Regex est construit.

  • Regex prend désormais en charge les étendues pour certaines API. Les nouvelles méthodes suivantes ont été ajoutées dans le cadre de cette prise en charge :

Pour plus d’informations sur ces améliorations et d’autres, consultez le billet de blog Améliorations des expressions régulières dans .NET 7 .

Bibliothèques .NET

De nombreuses améliorations ont été apportées aux API de bibliothèque .NET. Certaines sont mentionnées dans d’autres sections dédiées de cet article. D’autres sont résumées dans le tableau suivant.

Description
API
Informations supplémentaires

Prise en charge des microsecondes et des nanosecondes dans TimeSpanles types , TimeOnly, DateTimeet DateTimeOffset
- DateTime.Microsecond
- DateTime.Nanosecond
- DateTime.AddMicroseconds(Double)
- Surcharges de nouveau DateTime constructeur
- DateTimeOffset.Microsecond
- DateTimeOffset.Nanosecond
- DateTimeOffset.AddMicroseconds(Double)
- Surcharges de nouveau DateTimeOffset constructeur
- TimeOnly.Microsecond
- TimeOnly.Nanosecond
- TimeSpan.Microseconds
- TimeSpan.Nanoseconds
- TimeSpan.FromMicroseconds(Double)
- Et d’autres...
Ces API signifient que vous n’avez plus besoin d’effectuer des calculs sur la valeur « tick » pour déterminer les valeurs de microseconde et de nanoseconde. Pour plus d’informations, consultez le billet de blog .NET 7 Preview 4 .

API pour la lecture, l’écriture, l’archivage et l’extraction d’archives Tar
System.Formats.Tar
Pour plus d’informations, consultez les billets de blog .NET 7 Preview 4 et .NET 7 Preview 6 .

Api de limitation du débit pour protéger une ressource en maintenant le trafic à un niveau sécurisé
RateLimiteret d’autres dans le package NuGet System.Threading.RateLimiting
Pour plus d’informations, consultez Limite de débit d’un gestionnaire HTTP dans .NET et Annonce de la limitation de débit pour .NET.

API pour lire toutes les données d’un Stream
- Stream.ReadExactly
- Stream.ReadAtLeast
Stream.Read peut retourner moins de données que ce qui est disponible dans le flux. Les nouvelles ReadExactly méthodes lisent exactement le nombre d’octets demandés, et les nouvelles ReadAtLeast méthodes lisent au moins le nombre d’octets demandés. Pour plus d’informations, consultez le billet de blog .NET 7 Preview 5 .

Nouveaux convertisseurs de types pour DateOnly, TimeOnly, Int128, UInt128et Half
Dans l’espace de System.ComponentModel noms :
- DateOnlyConverter
- TimeOnlyConverter
- Int128Converter
- UInt128Converter
- HalfConverter
Les convertisseurs de types sont souvent utilisés pour convertir des types valeur vers et à partir d’une chaîne. Ces nouvelles API ajoutent des convertisseurs de types pour les types qui ont été ajoutés plus récemment.

Prise en charge des métriques pour IMemoryCache
- MemoryCacheStatistics
- MemoryCache.GetCurrentStatistics()
GetCurrentStatistics() vous permet d’utiliser des compteurs d’événements ou des API de métriques pour suivre les statistiques d’un ou plusieurs caches de mémoire. Pour plus d’informations, consultez le billet de blog .NET 7 Preview 4 .

API pour obtenir et définir des autorisations de fichier Unix
- System.IO.UnixFileMode Enum
- File.GetUnixFileMode
- File.SetUnixFileMode
- FileSystemInfo.UnixFileMode
- Directory.CreateDirectory(String, UnixFileMode)
- FileStreamOptions.UnixCreateMode
Pour plus d’informations, consultez le billet de blog .NET 7 Preview 7 .

Attribut pour indiquer quel type de syntaxe est attendu dans une chaîne
StringSyntaxAttribute
Par exemple, vous pouvez spécifier qu’un string paramètre attend une expression régulière en attribuant au paramètre [StringSyntax(StringSyntaxAttribute.Regex)].

API d’interopérabilité avec JavaScript lors de l’exécution dans le navigateur ou d’autres architectures WebAssembly
System.Runtime.InteropServices.JavaScript
Les applications JavaScript peuvent utiliser la prise en charge développée de WebAssembly dans .NET 7 pour réutiliser les bibliothèques .NET à partir de JavaScript. Pour plus d’informations, consultez Utiliser .NET à partir d’une application JavaScript dans .NET 7.

Observabilité

.NET 7 apporte des améliorations à l’observabilité. L’observabilité vous aide à comprendre l’état de votre application à mesure qu’elle évolue et que la complexité technique augmente. . L’implémentation d’observabilité de NET est principalement basée sur OpenTelemetry. Les améliorations incluent :

Pour plus d’informations, consultez le billet de blog .NET 7 Preview 4 .

Kit de développement logiciel (SDK) .NET

Le Kit de développement logiciel (SDK) .NET 7 améliore l’expérience du modèle CLI. Il permet également la publication sur des conteneurs et la gestion centralisée des packages avec NuGet.

Modèles

Certaines améliorations bienvenues ont été apportées à la commande et à la dotnet new création de modèles.

dotnet new

La dotnet new commande CLI, qui crée un projet, un fichier de configuration ou une solution basée sur un modèle, prend désormais en charge la saisie semi-automatique sous onglet pour explorer :

  • Noms de modèles disponibles
  • Options de modèle
  • Valeurs d’option autorisées

En outre, pour une meilleure conformité, les installsous-commandes , searchuninstall, list, et update n’ont plus le -- préfixe.

Création

Les contraintes de modèle, un nouveau concept pour .NET 7, vous permettent de définir le contexte dans lequel vos modèles sont autorisés. Les contraintes aident le moteur de modèle à déterminer les modèles qu’il doit afficher dans des commandes telles que dotnet new list. Vous pouvez limiter votre modèle à un système d’exploitation, à un hôte de moteur de modèle (par exemple, l’interface CLI .NET ou la boîte de dialogue Nouveau projet dans Visual Studio) et à une charge de travail installée. Vous définissez des contraintes dans le fichier de configuration de votre modèle.

Également dans le fichier de configuration du modèle, vous pouvez maintenant annoter un paramètre de modèle comme autorisant plusieurs valeurs. Par exemple, le web modèle autorise plusieurs formes d’authentification.

Pour plus d’informations, consultez le billet de blog .NET 7 Preview 6 .

Publier dans un conteneur

Les conteneurs sont l’un des moyens les plus simples de distribuer et d’exécuter un large éventail d’applications et de services dans le cloud. Les images conteneur sont désormais un type de sortie pris en charge du Kit de développement logiciel (SDK) .NET, et vous pouvez créer des versions conteneurisées de vos applications à l’aide dotnet publishde . Pour plus d’informations sur la fonctionnalité, consultez Annonce de la prise en charge de conteneur intégré pour le Kit de développement logiciel (SDK) .NET. Pour obtenir un didacticiel, consultez Containerize a .NET app with dotnet publish.

Gestion centralisée des packages

Vous pouvez désormais gérer les dépendances courantes dans vos projets à partir d’un emplacement unique à l’aide de la fonctionnalité de gestion centralisée des packages (CPM) de NuGet. Pour l’activer, vous ajoutez un fichier Directory.Packages.props à la racine de votre dépôt. Dans ce fichier, définissez la propriété ManagePackageVersionsCentrally MSBuild sur et ajoutez des versions pour la dépendance de package courante à true l’aide d’éléments PackageVersion . Ensuite, dans les fichiers projet individuels, vous pouvez omettre Version les attributs de tous les éléments PackageReference qui font référence à des packages gérés de manière centralisée.

Pour plus d’informations, consultez Gestion centralisée des packages.

Génération de source P/Invoke

.NET 7 introduit un générateur source pour les appels de plateforme (P/Invokes) en C#. Le générateur source recherche sur static, partial des méthodes pour LibraryImportAttribute déclencher la génération source au moment de la compilation du code de marshaling. En générant le code de marshaling au moment de la compilation, aucun stub IL ne doit être généré au moment de l’exécution, comme il le fait lors de l’utilisation de DllImportAttribute. Le générateur source améliore les performances de l’application et permet également à l’application d’être compilée à l’avance (AOT). Pour plus d’informations, consultez Génération de source pour les appels de plateforme et Utiliser des marshallers personnalisés dans les P/Invokes générés par la source.

Versions associées

Cette section contient des informations sur les produits associés qui ont des versions qui coïncident avec la version .NET 7.

Visual Studio 2022 version 17.4

Pour plus d’informations, consultez Nouveautés de Visual Studio 2022.

C# 11

C# 11 prend en charge les mathématiques génériques, les littéraux de chaîne brute, les types délimités par les fichiers et d’autres nouvelles fonctionnalités. Pour plus d’informations, consultez Nouveautés de C# 11.

.NET MAUI

L’interface utilisateur d’application multiplateforme .NET (.NET MAUI) est une infrastructure multiplateforme permettant de créer des applications mobiles et de bureau natives avec C# et XAML. Il unifie les API Android, iOS, macOS et Windows en une seule API.

ASP.NET Core

ASP.NET Core 7.0 inclut un intergiciel à limitation de débit, des améliorations apportées aux API minimales et le transcodage JSON gRPC. Pour plus d’informations sur toutes les mises à jour, consultez Nouveautés de ASP.NET Core 7.

EF Core

Entity Framework Core 7.0 inclut une prise en charge indépendante du fournisseur pour les colonnes JSON, une amélioration des performances pour l’enregistrement des modifications et des modèles d’ingénierie inverse personnalisés. Pour plus d’informations sur toutes les mises à jour, consultez Nouveautés d’EF Core 7.0.

Windows Forms

Beaucoup de travail a été effectué dans Windows Forms pour .NET 7. Des améliorations ont été apportées dans les domaines suivants :

  • Accessibilité
  • DPI élevé et mise à l’échelle
  • Liaison de données

Pour plus d’informations, consultez Nouveautés de Windows Forms dans .NET 7.

Orleans

Orleans est une infrastructure multiplateforme permettant de créer des applications distribuées robustes et évolutives. Pour plus d’informations sur les dernières mises à jour d’Orleans, consultez Nouveautés d’Orleans 7.0.

Assistant Mise à niveau .NET et CoreWCF

L’Assistant Mise à niveau .NET prend désormais en charge la mise à niveau des applications WCF côté serveur vers CoreWCF, qui est un port de WCF créé par la communauté vers .NET (Core). Pour plus d’informations, consultez Mettre à niveau un projet côté serveur WCF pour utiliser CoreWCF.

ML.NET

ML.NET inclut désormais une API de classification de texte qui facilite l’apprentissage des modèles de classification de texte personnalisés à l’aide des dernières techniques de deep learning. Pour plus d’informations, consultez les billets de blog Nouveautés d’AutoML et des outils et Présentation de l’API classification de texte ML.NET .

Voir aussi

Créer des applications - SDK

Info-bulle : Voulez-vous créer des applications ? Le kit de développement logiciel (SDK) comprend tout ce dont vous avez besoin pour créer et exécuter des applications .NET, à l'aide d'outils de ligne de commande et de n'importe quel éditeur (comme Visual Studio).

SDK 7.0.100

Downloads for .NET 7.0 SDK (v7.0.100)
OS Installers Binaries
Linux Package manager instructions Arm32 | Arm32 Alpine | Arm64 | Arm64 Alpine | x64 | x64 Alpine
MacOs Arm64 | x64 Arm64 | x64
Windows Arm64 | x64 | x86 | winget instructions Arm64 | x64 | x86
All dotnet-install scripts
Prise en charge de Visual Studio
Visual Studio 2022 (v17.4)
Visual Studio 2022 pour Mac (v17.4)
Inclus dans
Visual Studio 17.4
Exécutions incluses
.NET Runtime 7.0.0
ASP.NET Core Runtime 7.0.0
.NET Desktop Runtime 7.0.0
Support linguistique
C# 11.0
Fa# 7.0
Visual Basic 15.5

Exécuter des applications - Runtime

Info-bulle : Voulez-vous exécuter des applications ? Le runtime comprend tout ce dont vous avez besoin pour exécuter des applications .NET. Le runtime est également inclus dans le SDK.

ASP.NET Core Runtime 7.0.0

Le runtime ASP.NET Core vous permet d'exécuter des applications Web/serveur existantes. Sous Windows, nous vous recommandons d'installer le pack d'hébergement, qui inclut la prise en charge de .NET Runtime et IIS.

Prise en charge de l'environnement d'exécution IIS (module ASP.NET Core v2)
17.0.22292.0
Downloads for ASP.NET Core 7.0 Runtime (v7.0.0)
OS Installers Binaries
Linux Package manager instructions Arm32 | Arm32 Alpine | Arm64 | Arm64 Alpine | x64 | x64 Alpine
MacOs   Arm64 | x64
Windows Hosting Bundle | x64 | x86 | winget instructions Arm64 | x64 | x86
.

.NET Desktop Runtime 7.0.0

Le runtime de bureau .NET vous permet d'exécuter des applications de bureau Windows existantes. Cette version inclut le runtime .NET ; vous n'avez pas besoin de l'installer séparément.

OS Installers Binaries
Windows Arm64 | x64 | x86 | winget instructions
.

.NET Runtime 7.0.0

Le runtime .NET contient uniquement les composants nécessaires pour exécuter une application console. En règle générale, vous installez également le runtime ASP.NET Core ou .NET Desktop Runtime.

OS Installers Binaries
Linux Package manager instructions Arm32 | Arm32 Alpine | Arm64 | Arm64 Alpine | x64 | x64 Alpine
MacOs Arm64 | x64 Arm64 | x64
Windows Arm64 | x64 | x86 | winget instructions Arm64 | x64 | x86
All dotnet-install scripts

Aucun commentaire: