Aperçu du cours
Objectif de formation : Maîtriser les techniques de développement avancées sur C#.
Prérequis
- Solide compréhension du langage C#
- Connaissance du langage .NET
Objectifs pédagogiques
- Déployer des outils avancées au sein du code avec C#
- Pouvoir se servir de la réflexion afin d’inspecter & de générer du code
- Contrôler la programmation d'applications multithreads
- Implémenter des WebServices SOAP et REST
- Pouvoir manipuler WPF
- Pouvoir déployer la programmation asynchrone
Public ciblé
- Développeurs
- Architectes
- Chefs de projets techniques
Programme de formation
-
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
-