Inclusive software development Performances 7 Amélioration générale des performances Publication ReadyToRun (R2R) • Améliore le démarrage • Forme d’AOT JSON APIs • Jusqu’à 2-3x plus rapide • Basé sur Span + UTF8 • System.Text.Json.* Garbage Collector • Consommation mémoire réduite • Meilleur support des conteneurs
Inclusive software development Docker 8 Images .NET Core SDK • Microsoft Container Registry (MCR) • PowerShell Core inclus Support des limites mémoire et CPU (cgroups) C:\>docker run -m 4mb --rm alpine
Inclusive software development Futures Versions .NET 12 .NET Core 3.0 sortie le 23/09 ! .NET Core 3.1 = Long Term Support (LTS) .NET 5.0 en novembre 2020 July 2019 .NET Core 3.0 RC Sept 2019 .NET Core 3.0 Nov 2019 .NET Core 3.1 LTS Nov 2020 .NET 5.0 Nov 2021 .NET 6.0 LTS Nov 2022 .NET 7.0 Nov 2023 .NET 8.0 LTS
Inclusive software development gRPC SignalR • Auto-reconnexion • Streaming client->server Blazor Server • Blazor WebAssembly en preview Performance • Intégration de System.Text.Json • HTTP/2 activé par défaut avec Kestrel ASP.NET Core 3.0 14
Inclusive software development ASP.NET Core 3.0 15 Authentification • Authentification et autorisation avec IdentityServer • Support de l’authentification par certificat et Kerberos Nouveau host générique HostBuilder • WebHostBuilder deprecated Manipulation du HttpRequest.Body avec System.IO.Pipelines
Inclusive software development Refonte de LINQ • Requêtes plus efficaces • Evaluation cliente restreinte Support de Cosmos DB Interception de requêtes (IDbCommandInterceptor) Reverse engineering de Vues SQL • Query types => keyless entity types Support de C# 8 Entity Framework Core 3.0 16 var specialCustomers = context.Customers .Where(c => c.Name.StartsWith(n) && IsSpecialCustomer(c)); var specialCustomers = context.Customers .Where(c => c.Name.StartsWith(n)) .AsEnumerable() // switch explicite vers LINQ to Objects .Where(c => IsSpecialCustomer(c));
Inclusive software development C# 8 24 Switch expressions var area = figure switch { Line _ => 0, Rectangle r => r.Width * r.Height, Circle c => Math.PI * c.Radius * c.Radius, _ => throw new UnknownFigureException(figure) };
Inclusive software development Azure Functions : Durable Functions 2.0 29 • Qualité : « preview quality release » • Refonte des librairies • Meilleure configuration du stockage des DurableTasks • Utilisation d’autres systèmes de stockage : Redis, ServiceBus • Durable Entity : come back du pattern ActorModel dans Azure • .Net Standard 2.0 only
Inclusive software development Azure App Config 30 • Service complètement managé configurable en quelques minutes • Représentations et mappages de clés flexibles • Marquage avec des étiquettes • Relecture des paramètres à un point dans le temps • Interface utilisateur dédiée pour la gestion des indicateurs de fonctionnalités • Comparaison de deux jeux de configurations sur les dimensions personnalisées • Sécurité renforcée par le biais d’identités managées par Azure • Chiffrements complets des données au repos ou en transit • Intégration native à des frameworks connus