Préparer l'arrivée de dotnet 6 - Les nouveautés

dotnet 6

C’est partie pour les NouveautĂ©s dotnet 6.

Pour rappel dotnet 6 est prévue pour sortie en novembre 2021 !

Un vrai travail sur l’amĂ©lioration des performances

des améliorations autour du File
des amélioration dans Blazor et Maui

Ils ont dĂ©cidĂ© d’arrĂȘter le traitement actuel sur les fichiers recherchĂ©s / indexĂ©s, pour travailler en mĂ©moire.
Amélioration de 10 à 100 x.

  • AmĂ©lioration du ReadAsync
  • Mise en place du Scatter/Gather IO ou Vectored IO

Quelques breaking changes

  • Principalement au sujet de l’utilisation de la PropriĂ©tĂ© FileStream.Position.

Si on souhaite garder l’approche dotnet 5
{
« configProperties »: {
« System.IO.UseNet5CompatFileStream »: true
}
}

Travail sur le PGO (Profile guided optimization)

Retravail complet du PGO
Motivé par la refonte de : crossgen2

Permet de faire du code AOT.

Par la suite, ça va permettre par exemple le version bubble

Travail sur le StaticPGO pour l’AOT et le Dynamic PGO pour le RyuJIT.

Autres améliorations

Des amélioration autour de EF core

Possibilité de générer une table temporelle
La possibilitĂ© d’ajouter des migrations Ă  un lot (bundle) de migration
Mise en place d’un mappage de prĂ©convention
PossibilitĂ© d’utiliser des modĂšles compilĂ©s => optim de 10 fois plus rapide.



Des amĂ©liorations autour d’asp.net core

Amélioration de la prise en compte de Blazor client avec javascript
Prise en compte d’angular 12 pour les templates de gĂ©nĂ©ration
L’amĂ©lioration de la possibilitĂ© de construire des APIs minimales

Injection des services sans le Tag Fromservices

Et bien sĂ»r l’arrivĂ©e de C# 10 !

Rappelons déjà ce qui arrivait avec C# 9 :

  • les records : presque classe sans l’etre, dans le but de reprĂ©senter des donnĂ©es pures, immutables
  • le init only : pouvoir ajouter le mot clef init, pour permettre une seule mise Ă  jour de la valeur de la propriĂ©tĂ©
  • le top level : oĂč la possibilitĂ© de se passer des namespace et static
  • plus besoin de spĂ©cifier le type quand on fait le new
  • les lambda expressions statics
  • l’arrivĂ©e de l’attribut ModuleInitializer : ça permet Ă  une mĂ©thode d’ĂȘtre chargĂ©e au lancement de l’assembly

Et en C# 10 alors ?

  • dĂ©claration du namespace pour le fichier, sans accolade
  • possibilitĂ© d’appeler une sous propriĂ©tĂ© via un pattern : { Prop1.Prop2: 12 } https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-10.0/extended-property-patterns
  • la possibilitĂ© d’avoir des attributs gĂ©nĂ©riques (comme les classes, les interfaces ou les mĂ©thodes)
  • la possibilitĂ© de mettre des attributs sur des lambdas
  • l’attribut CallerArgumentExpression : pour avoir plus d’info ce qui est passĂ© en paramĂštre d’une fonction

MAUI

DerniÚre news : MAUI ne sera pas livré avec dotnet 6 mais avec la release mineure suivante, à priori.

Notre adresse

1 rue du guesclin
44000 Nantes

Notre téléphone

+33 2 79 65 52 87

Société

DevToBeCurious SARL
84860163900018 - Nantes B 848 601 639