Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Annonces de la .NET Conf 2019

Cyril
October 03, 2019

Annonces de la .NET Conf 2019

Présentation pour le meetup DevTalks .NET #10

Cyril

October 03, 2019
Tweet

More Decks by Cyril

Other Decks in Programming

Transcript

  1. Inclusive software development Windows Desktop 4 WinForms, WPF • WPF

    Designer avec VS 2019 16.3 + XAML Hot Reload • WinForms Designer VSIX (preview) Rétrocompatibilité sans modification du code • Portability Analyzer : https://aka.ms/portabilityAnalyzer • try-convert.exe : https://github.com/dotnet/try-convert Windows Interop • P/Invoke, COM, WinRT, Managed C++
  2. Inclusive software development IoT 5 Support Raspberry Pi + ARM64

    Remote debugging APIs pour GPIO, PWM, I2C, SPI https://github.com/dotnet/iot
  3. Inclusive software development Exécutables natifs 6 Exécutables natifs visant (Système

    + CPU) Windows, Linux, macOS Self-contained deployment sans embarquer lib et runtime # .NET Core 2.1 dotnet app.dll # .NET Core 3.0 app.exe ./app
  4. 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<T> + UTF8 • System.Text.Json.* Garbage Collector • Consommation mémoire réduite • Meilleur support des conteneurs <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.0</TargetFramework> <PublishReadyToRun>true</PublishReadyToRun> </PropertyGroup> </Project> dotnet publish -r win-x64 -c Release
  5. 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
  6. Inclusive software development Autres nouveautés en vrac 9 APIs •

    Microsoft.Data.SqlClient • System.Security.Crytography HTTP/2, TLS 1.3, OpenSSL 1.1.1, Brotli Assembly linking • <PublishTrimmed> .NET Core SDK • Installation des patchs du SDK « in place » • Taille diminuée
  7. Inclusive software development .NET Standard 2.1 10 Span<T> Reflection emit

    Support de SIMD ValueTask / ValueTask<T> DbProviderFactories
  8. 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
  9. 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
  10. 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
  11. 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));
  12. Inclusive software development C# 8 18 Nullable reference types en

    opt-in string s = null; // Warning string? s = null; // Ok
  13. Inclusive software development C# 8 19 Ranges et indices int[]

    a = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; var penultimate = a[^2]; // "8" var slice = a[3..^2]; // { 3, 4, 5, 6, 7 }
  14. Inclusive software development C# 8 20 Async streams async IAsyncEnumerable<int>

    GetBigResultsAsync() { await foreach (var result in GetResultsAsync()) { if (result > 20) yield return result; } }
  15. Inclusive software development C# 8 21 Async streams async IAsyncEnumerable<int>

    GetBigResultsAsync() { await foreach (var result in GetResultsAsync()) { if (result > 20) yield return result; } }
  16. Inclusive software development C# 8 22 Implémentation par défaut des

    interfaces interface ILogger { void Log(LogLevel level, string message); void Log(Exception ex) => Log(LogLevel.Error, ex.ToString()); }
  17. Inclusive software development C# 8 23 Implémentation par défaut des

    interfaces interface ILogger { void Log(LogLevel level, string message); void Log(Exception ex) => Log(LogLevel.Error, ex.ToString()); }
  18. 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) };
  19. Inclusive software development C# 8 25 Pattern matching Using declaration

    Fonction locale statique Null-coalescing assignment (??=) https://aka.ms/new-csharp
  20. 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
  21. 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
  22. Inclusive software development ML.Net Update 31 • ML.Net Open source

    & Cross-platform machine learning framework • Model Builder: Interface graphique pour construire ses modèles • Pleins d’exemples sur Github • https://github.com/dotnet/machinelearning- samples/blob/master/README.md