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. DevTalks .NET Conf
    Cyril CATHALA
    Wilfried WOIVRE

    View Slide

  2. TITRE CHAPITRE
    .NET Core 3.0
    2

    View Slide

  3. Inclusive software development
    DESKTOP WEB CLOUD MOBILE GAMING IoT AI
    .NET
    .NET Core 3.0

    View Slide

  4. 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++

    View Slide

  5. Inclusive software development
    IoT
    5
    Support Raspberry Pi + ARM64
    Remote debugging
    APIs pour GPIO, PWM, I2C, SPI
    https://github.com/dotnet/iot

    View Slide

  6. 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

    View Slide

  7. 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


    Exe
    netcoreapp3.0
    true


    dotnet publish -r win-x64 -c Release

    View Slide

  8. 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

    View Slide

  9. 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

    .NET Core SDK
    • Installation des patchs du SDK « in place »
    • Taille diminuée

    View Slide

  10. Inclusive software development
    .NET Standard 2.1
    10
    Span
    Reflection emit
    Support de SIMD
    ValueTask / ValueTask
    DbProviderFactories

    View Slide

  11. Inclusive software development
    XAMARIN / MONO
    .NET FRAMEWORK .NET
    .NET CORE
    .NET STANDARD
    .NET 5

    View Slide

  12. 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

    View Slide

  13. Web
    13

    View Slide

  14. 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

    View Slide

  15. 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

    View Slide

  16. 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));

    View Slide

  17. C#
    17

    View Slide

  18. Inclusive software development
    C# 8
    18
    Nullable reference types en opt-in
    string s = null; // Warning
    string? s = null; // Ok

    View Slide

  19. 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 }

    View Slide

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

    View Slide

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

    View Slide

  22. 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());
    }

    View Slide

  23. 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());
    }

    View Slide

  24. 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)
    };

    View Slide

  25. Inclusive software development
    C# 8
    25
    Pattern matching
    Using declaration
    Fonction locale statique
    Null-coalescing assignment (??=)
    https://aka.ms/new-csharp

    View Slide

  26. Mobile
    26

    View Slide

  27. Inclusive software development
    Xamarin
    27
    XAML Hot Reload
    Hot Restart
    Support pour iOS 13 et Android 10

    View Slide

  28. Azure
    28

    View Slide

  29. 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

    View Slide

  30. 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

    View Slide

  31. 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

    View Slide

  32. Inclusive software development
    32

    View Slide

  33. MERCI

    View Slide