Description
Cette formation vous présente une méthodologie pour améliorer l'efficacité de vos applications .NET et .Net Core. Vous apprendrez à utiliser les outils d'analyse de performances et de diagnostic les plus importants, et vous maîtriserez les différentes techniques d'optimisation de code en langage C#. Vous serez ainsi en mesure d'optimiser vos applications pour qu'elles fonctionnent de manière plus rapide et plus efficace.
À qui s'adresse cette formation ?
Pour qui ?
Développeurs, ingénieurs, architectes, chefs de projet.
Prérequis
Bonnes connaissances du langage C#. Expérience requise.
Les objectifs de la formation
Programme de la formation
- Introduction
- Évolution de la plateforme .Net et de son écosystème.
- Optimiser : quoi, comment, quand ? Objectifs.
- Le ramasse-miettes GC, optimisation des allocations et diagnostic
- La gestion de la mémoire par le ramasse-miettes et API GC.
- Outils de diagnostic de Visual Studio, de JetBrains et BenchmarkDotNet.
- Le Pattern Dispose et l’implémentation de IDisposable.
- Recommandations pour éviter les fuites mémoires potentielles d’une application .Net.
- Garde-fous au design time via les Règles d’Analyse de code.
- Outils de l’écosystème .Net pour tracer les erreurs de boxing, de closure et références nulles.
- Méthodes C# et constructions du langage
- Méthodes C# et l’évolution du codage.
- Méthodes d’extension et architecture LINQ.
- Méthodes asynchrones et utilisation des mots clés async/await.
- Mesures de performance des allocations des types Value comparés aux types Reference.
- Nouveau type valeur ValueTuple de C# 7.0.
- Passage de paramètres et retour par référence de C# 7.2.
- Avantages de la programmation fonctionnelle en C# et comparaison au langage fonctionnel F#.
- Pattern Matching en C#.
- Tableaux et collections
- Performance des opérations sur les données.
- Collections du .Net et caractéristiques.
- Implémentation de l’interface IEquatable.
- Pointeur IntPtr et le mot clé C# 7.2 stackalloc pour allouer sur la pile.
- La librairie TPL du .Net 4.7 : asynchronisme et parallélisme
- Évolution de la gestion des appels asynchrones via les mots clés async/await.
- Les nouvelles classes de System.Threading.Tasks.
- Paralléliser les itérations for et foreach. Design pattern en matière de parallélisme.
- Utilisation de l’infrastructure PLinq.
- Diagnostic de performance via le NuGet BenchmarkDotNet et DotTrace de JetBrains.
- Conclusion
- Incidence des fonctionnalités C# 8 et C# 9 sur le code et les applications .Net.
- Une synthèse et quelques conseils.
- Recommandations d’ouvrages et références internet.