Aperçu du cours
Objectif de formation : Maîtriser les techniques de développement avancées sur C#.
Programme d'études
Introduction aux techniques avancées de C#
Délégués et événements
Délégués
Événements
Types anonymes
Tuples
Présentation de la classe Tuple
Tuples de valeur
Correspondance de motifs
Expression is
Expression switch
Expressions régulières
Correspondance du texte d’entrée
Recherche de sous-chaînes
Modifier des parties d’un texte
Méthodes d’extension
Administration des ressources
Collecte des déchets
Finaliseurs
Interface IDisposable
Présentation de l’instruction using
Invocation de la plate-forme
Code non sécurisé
Introduction au WPF
Présentation
Conception de Windows Forms
Implémentation de WPF
Conception d’un gestionnaire de contacts
Intégration Async/Await
Introduction à WCF
Paramétrage & hébergement d’un service
Architecture de WCP
Implémentation de points de terminaison
Service bidirectionnel
LAMBDAS, LINQ ET PROGRAMMATION FONCTIONNELLE
Programmation fonctionnelle
Fonctions comme citoyens de première classe
Expressions lambda
LINQ
Opérateurs de requête standard
Syntaxe des requêtes
Autres concepts de programmation fonctionnelle
Application de fonctions partielles
CurryingFermetures
Monoïdes
Monades
Réflexion & programmation dynamique
Premiers pas avec la réflexion
Chargement dynamiquement des assemblages
Présentation de la liaison tardive
Type dynamique
Attributs
Attributs système
Attributs définis par l’utilisateur
Manipulation pratique des attributs
Cibles des attributs
Attributs d’assemblage
Attributs dans la réflexion
MULTITHREADING ET PROGRAMMATION ASYNCHRONE
Définition d’un thread
Conception de threads dans .NET
Manipulation de la classe ThreadPool
Introduction aux primitives de synchronisation
Paradigme des tâches
Mise en oeuvre synchrones de méthodes asynchrones
Méthodes asynchrones occasionnelles
Rompre la chaîne de tâches – bloquer le thread
Conception manuelle d’une tâche
Rupture de la chaîne de tâches – « fire and forget
Tâche & exceptions
Annulation d’une tâche
Suivi de la progression d’une tâche
Parallélisation des tâches
Signalisation des tâches avec l’objet TaskCompletionSource
Contexte de synchronisation
C# & .NET Core 6
Manipulation de l’interface de ligne de commande (CLI) de .NET
Déploiement sur les distributions Linux
Préparation de la boîte de développement
Écriture du code compatible avec les multiples plates-formes
Définition de la norme .NET et son rôle dans la conception d’une application
Création d’une bibliothèque .NET Standard
Consommation des paquets NuGet
Ajout des packages à un projet
Migration de .NET Framework vers .NET Core
Analyse de l’architecture
Préparation du processus de migration
MIGRATION & PUBLICATION
Bibliothèques
Tests
Projets de bureau
Projet ASP.NET
Récapitulatif des étapes de la migration
Publication d’une application
FDD vs SCD
Tour d’horizon des diverses options de publication
Tests unitaires sous C#
Définition de tests unitaires
Présentation des différents outils Microsoft pour les tests
Conception d’un projet de tests unitaires C#
Rédaction de tests unitaires
Analyse de la couverture du code
Anatomie d’un test
Rédaction de tests unitaires à partir de données
Données provenant d’attributs
Données dynamiques
Données provenant de sources externes