Objectifs pédagogiques
- Définir le multi-threading
- Gérer l'asynchronisme
- Utiliser les métadonnées avec les Attributes
- Décrire la programmation dynamique et parallèle
- Interagir avec du code non managé
- Créer des domaines d'application.
Modalités et moyens pédagogiques
Formation délivrée en présentiel ou distanciel* (e-learning, classe virtuelle, présentiel à distance).
Le formateur alterne entre méthode** démonstrative, interrogative et active (via des travaux pratiques et/ou des mises en situation).
Variables suivant les formations, les moyens pédagogiques mis en oeuvre sont :
- Ordinateurs Mac ou PC (sauf pour les cours de l'offre Management), connexion internet fibre, tableau blanc ou paperboard, vidéoprojecteur ou écran tactile interactif (pour le distanciel)
- Environnements de formation installés sur les postes de travail ou en ligne
- Supports de cours et exercices
En cas de formation intra sur site externe à M2i, le client s'assure et s'engage également à avoir toutes les ressources matérielles pédagogiques nécessaires (équipements informatique...) au bon déroulement de l'action de formation visée conformément aux prérequis indiqués dans le programme de formation communiqué.
* nous consulter pour la faisabilité en distanciel
** ratio variable selon le cours suivi
Niveau requis
Avoir suivi le cours CS-FRM "Programmation C# - Développer en .NET avec Visual Studio" ou avoir une connaissance pratique du langage C#.
Testez vos connaissances
Afin de vous orienter vers la formation la plus adaptée à votre niveau, passez votre test de connaissances pour évaluer vos compétences actuelles.
Temps estimé : 4 minutes.
Passer le testPublic concerné
Développeurs, architectes, chefs de projets technique.
Programme
Les fonctionnalités avancées de C#
- Evolution du langage C#, de la version 1 à 10
- Utilisation des types .NET standards
- Gestion des exceptions
- Nouveautés de C# 6
- Nul-conditionnel
- Amélioration des propriétés automatiques
- Fonctions "Expression Bodied"...
- Nouveautés de C# 7
- Lisibilité des constantes
- Variables "out"
- Tuples
- Pattern matching
- Retour de référence...
- Nouveautés de C# 8
- Expressions switch
- Méthodes d'interface par défaut
- Type référence Nullable...
- Nouveautés de C# 9
- Records
- Target-typed new
- Pattern matching...
- Nouveautés de C# 10
- Global namespace
- File-scoped namespaces
- Record structs...
Programmation objet avec C#
- Création de librairie de classes
- Stockage de données sous forme de champs
- Utilisation des collections
- Gestion des méthodes de classe
- Contrôle d'accès et encapsulation
- Pattern matching
- Travailler avec les "records"
- Interfaces et héritage
Concurrence et threading
- Cas d'utilisation du multi-threading
- Thread et Task
- Synchronisation et communication
- ThreadPool et efficacité
- Async et await
Asynchronisme
- Différence entre appels synchrones et asynchrones
- Async opérations
- C# async et await
- Progression et abandon
Reflection et Attributes
- Introspection des assemblies et classes
- Les types d'Attributes
- Paramètres des Attributes
- Génération de code : Emitters
LINQ
- Architecture interne de LINQ
- Fonctionnalités avancées de LINQ
- Créer son propre provider "IQueryable"
- Performances sur l'utilisation de LINQ
Interopérabilité
- P/Invoke
- COM Interop
- COM Wrappers
- Passage de paramètres
Fonctionnement avancé du Runtime
- Dynamic Language Runtime (DLR)
- Task Parallel Library (TPL)
- Sécurité d'accès : Code Access Security (CAS)
- Application domains
Garbage Collector
- Algorithme de nettoyage du Garbage Collector
- Ressources managées vs non managées
- Bien libérer les ressources
- Pattern IDisposable
Tests unitaires
- Utilisation de MSTest v2 et NUnit
- Comment bien écrire un test unitaire ?
- Convaincre les développeurs sur l'utilité des tests unitaires
- Extensions du moteur MSTest v2
- Les frameworks de "Mock"
Examen M2i (en option)
- Prévoir l'achat de l'examen en supplément
- L'examen (en français) sera passé le dernier jour, à l'issue de la formation et s'effectuera en ligne
- Il s'agit d'un QCM dont la durée moyenne est d'1h30 et dont le score obtenu attestera d'un niveau de compétence
- L'examen n'est pas éligible au CPF, mais permettra néanmoins de valider vos acquis
Le contenu de ce programme peut faire l'objet d'adaptation selon les niveaux, prérequis et besoins des apprenants.
Modalités d’évaluation des acquis
- En cours de formation, par des études de cas ou des travaux pratiques
- Et, en fin de formation, par un questionnaire d'auto-évaluation et/ou un examen M2i
Les + de la formation
Un examen M2i permettant de valider vos acquis à l'issue de la formation est disponible sur demande (coût : 120€).