C# - Avancé

Formation créée le 11/01/2023. Dernière mise à jour le 17/03/2023.
Version du programme : 1

Type de formation

Formation à distance

Durée de formation

28 heures (4 jours)

C# - Avancé


Objectif de formation : Maîtriser les techniques de développement avancées sur C#.

Objectifs de la formation

  • 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

Profil des bénéficiaires

Pour qui
  • Développeurs
  • Architectes
  • Chefs de projets techniques
Prérequis
  • Solide compréhension du langage C#
  • Connaissance du langage .NET

Contenu de la 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

Équipe pédagogique

Professionnel expert technique et pédagogique.

Suivi de l'exécution et évaluation des résultats

  • Émargement numérique
  • Mises en situation
  • Formulaires d’évaluation de la formation
  • Certificat de réalisation de l’action de formation

Ressources techniques et pédagogiques

  • Espace intranet de formation
  • Documents supports de formation projetés
  • Exposés théoriques
  • Étude de cas concrets
  • Mise à disposition en ligne de documents supports à la suite de la formation

Qualité et satisfaction

Taux de satisfaction des apprenants, nombre d'apprenants, taux et causes des abandons, taux de retour des enquêtes, taux d'interruption en cours de prestation...