Développement avec le framework .NET

Passer de .Net Framework à .Net Core et aux dernières versions de C# – Bonnes pratiques de performance

Objectifs de la formation

  • Faire monter en compétence des développeurs expérimentés en C# et DotNet vers DotNetCore
  • Diagnostiquer les allocations mémoire et éviter les fuites mémoire
  • Optimiser le code C# en référence aux dernières versions C#
  • Optimiser et mesurer les gains de performances via le parallélisme
  • Optimisation des bases de données


Programme de la formation

Présentation de .NET Core et .NET 6+

  • Transition de .NET Framework vers .NET Core/.NET 6+: architecture, compatibilité.
  • Avantages : performance, modularité, multiplateforme.

Travaux pratiques

Migrer un projet simple de .NET Framework 4.7.2 vers .NET Core 6., Comparer les performances avant/après la migration (utilisation mémoire et CPU)


Nouveautés C# 8 à C# 12

  • Expressions switch, pattern matching amélioré, nullables, records, top-level statements, etc.

Travaux pratiques

Reprendre un ancien code C# et l’adapter en utilisant les nouvelles fonctionnalités C# (comme les records, le pattern matching).

Gestion mémoire en .NET Core

  • Différences dans la gestion mémoire entre .NET Framework et .NET Core.
  • Comprendre le Garbage Collector : optimisation de la mémoire, génération d’objets.

Travaux pratiques

Créer une application qui alloue et désalloue dynamiquement des objets et surveiller l’utilisation mémoire avec un outil comme dotMemory ou PerfView.

Optimisation des performances

  • Allocation de la mémoire, pool d’objets, et structures vs classes.
  • Span, Memory et autres optimisations bas-niveau.

Travaux pratiques

Réécrire des méthodes gourmandes en mémoire en utilisant les mécanismes C# pour réduire les allocations temporaires.

Asynchronisme avec async/await

  • Meilleures pratiques pour l’utilisation des tâches, gestion d’Exceptions, cancellation tokens.

Travaux pratiques

Refactoriser des méthodes synchrones lourdes pour l’exécuter de manière asynchrone, et mesurer les améliorations.

Multithreading avancé

  • Introduction à Task Parallel Library (TPL) , PLINQ , et threads.

Travaux pratiques

Implémenter une application multithreadée qui traite un grand volume de données et comparer les gains en performance avec une version single-thread.

Profiling d’applications

  • Outils de diagnostic : dotnet trace, BenchmarkDotNet, dotTrace.

Travaux pratiques

Créer un benchmark d’une application existante avec BenchmarkDotNet pour identifier les goulets d’étranglement.

Optimisation des I/O

  • Utilisation d’ Async IO , buffering, pipelines pour améliorer les performances des entrées/sorties.

Travaux pratiques

Optimiser une application qui lit/écrit sur disque ou réseau en implémentant des pipelines d’I/O.

Optimisation base de données

  • Côté Base de données (démonstrations):
    • Le rôle du moteur SQL Server et son interaction avec C#.
    • Les bonnes pratiques en conception de bases de données.
    • Comprendre les plans d’exécution et leur analyse.
    • Types d’index : cluster, non-cluster, et index covering.
    • Quand et comment utiliser les index.
    • Impact des index sur les opérations de lecture et d’écriture
    • Techniques d’optimisation : index composite, fill factor, fragmentation d’index.
  • Côté C# (démonstrations):
    • Techniques de minimisation des appels à la base de données : batch processing, pagination.
    • Performances liées à la sérialisation / dé sérialisation.
    • Utilisation des requêtes paramétrées pour éviter l’injection SQL et améliorer la performance.
    • Les transactions dans SQL Server : isolation levels, transactions implicites et explicites.
    • Problèmes liés aux verrous (deadlock, lock escalation).
    • Optimisation des transactions longues et réduction du temps de verrouillage.
    • Ségrégation des queries.
    • No SQL dans SQL et avantages performance.

Cas dʼétude / Consolidation des compétences

  • Jeux de mise en situation (TP de révision)
    • Migration, optimisation mémoire, multithreading, diagnostics.
    • Présentation de problèmes.
    • Recherche de solutions.
MOYENS PÉDAGOGIQUES ET TECHNIQUES D’ENCADREMENT DES FORMATIONS

Modalités pédagogiques :

  • Évaluation des besoins et du profil des participants.
  • Apport théorique et méthodologique : séquences pédagogiques regroupées en différents modules.
  • Contenus des programmes adaptés en fonction des besoins identifiés pendant la formation.
  • Le formateur évalue la progression pédagogique du participant tout au long de la formation au moyen de travaux pratiques, étude de cas et mise en situation.
  • Méthodes expositive, active et participative.
  • Réflexion et échanges sur cas pratiques.
  • Retours d'expériences.
  • Corrections appropriées et contrôles des connaissances à chaque étape, fonction du rythme de l’apprenant mais également des exigences requises au titre de la formation souscrite.

Éléments matériels :

  • Mise à disposition des outils nécessaires au bon déroulement des travaux pratiques.
  • Support de cours au format numérique projeté sur écran et transmis au participant en fin de la formation.

Référent pédagogique et formateur :

  • Chaque formation est sous la responsabilité du directeur pédagogique de l’organisme de formation.
  • Le bon déroulement est assuré par le formateur désigné par l’organisme de formation.
MOYENS PERMETTANT LE SUIVI ET L’APPRÉCIATION DES RÉSULTATS
  • Feuilles de présences signées des participants et du formateur par demi-journée.
  • Attestation de fin de formation mentionnant les objectifs, la nature et la durée de l’action et les résultats de l’évaluation des acquis de la formation.
Please login to get access to the quiz
Optimisation des applications .NET en langage C# (Prev Lesson)
Back to Développement avec le framework .NET
Public

Cette formation s’adresse à des développeurs maitrisant déjà correctement les concepts C# POO comme : Interfaces, Objets, Génériques, GC…

Pré-requis

Bonnes connaissances du langage C#. Expérience requise.

Vérifiez que vous avez les prérequis nécessaires pour profiter pleinement de cette formation en effectuant le test disponible en bas de cette page.

Lieu de formation

Intra-entreprise/à distance

Dates ou période

À définir. Nous consulter

Tarif

Sur devis. Merci de nous contacter

Modalités

Pour s’inscrire à notre formation, veuillez nous contacter par mail ou téléphone.

Démarrage de la formation sous deux semaines (délai indicatif).

Nous contacer
Informations complémentaires

Pour toute réclamation, aléas ou difficultés rencontrés pendant la formation, veuillez prendre contact avec notre organisme par téléphone ou par e-mail. Nous mettrons tout en œuvre pour trouver une solution adapter.

Formation synchrone, réalisée à distance en visioconférence via l’application Microsoft Teams ou en présentiel dans les locaux du client.