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
Fonctionnalités
- 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
Détails
- 70 Sections
- 679 Lessons
- 28 heures
Expand all sectionsCollapse all sections
- Introduction aux techniques avancées de C#15
- 1.1Délégués et événements
- 1.2Délégués
- 1.3Événements
- 1.4Types anonymes
- 1.5Tuples
- 1.6Présentation de la classe Tuple
- 1.7Tuples de valeur
- 1.8Correspondance de motifs
- 1.9Expression is
- 1.10Expression switch
- 1.11Expressions régulières
- 1.12Correspondance du texte d’entrée
- 1.13Recherche de sous-chaînes
- 1.14Modifier des parties d’un texte
- 1.15Méthodes d’extension
- Introduction aux techniques avancées de C#15
- 2.1Délégués et événements
- 2.2Délégués
- 2.3Événements
- 2.4Types anonymes
- 2.5Tuples
- 2.6Présentation de la classe Tuple
- 2.7Tuples de valeur
- 2.8Correspondance de motifs
- 2.9Expression is
- 2.10Expression switch
- 2.11Expressions régulières
- 2.12Correspondance du texte d’entrée
- 2.13Recherche de sous-chaînes
- 2.14Modifier des parties d’un texte
- 2.15Méthodes d’extension
- Introduction aux techniques avancées de C#15
- 3.1Délégués et événements
- 3.2Délégués
- 3.3Événements
- 3.4Types anonymes
- 3.5Tuples
- 3.6Présentation de la classe Tuple
- 3.7Tuples de valeur
- 3.8Correspondance de motifs
- 3.9Expression is
- 3.10Expression switch
- 3.11Expressions régulières
- 3.12Correspondance du texte d’entrée
- 3.13Recherche de sous-chaînes
- 3.14Modifier des parties d’un texte
- 3.15Méthodes d’extension
- Introduction aux techniques avancées de C#15
- 4.1Délégués et événements
- 4.2Délégués
- 4.3Événements
- 4.4Types anonymes
- 4.5Tuples
- 4.6Présentation de la classe Tuple
- 4.7Tuples de valeur
- 4.8Correspondance de motifs
- 4.9Expression is
- 4.10Expression switch
- 4.11Expressions régulières
- 4.12Correspondance du texte d’entrée
- 4.13Recherche de sous-chaînes
- 4.14Modifier des parties d’un texte
- 4.15Méthodes d’extension
- Introduction aux techniques avancées de C#15
- 5.1Délégués et événements
- 5.2Délégués
- 5.3Événements
- 5.4Types anonymes
- 5.5Tuples
- 5.6Présentation de la classe Tuple
- 5.7Tuples de valeur
- 5.8Correspondance de motifs
- 5.9Expression is
- 5.10Expression switch
- 5.11Expressions régulières
- 5.12Correspondance du texte d’entrée
- 5.13Recherche de sous-chaînes
- 5.14Modifier des parties d’un texte
- 5.15Méthodes d’extension
- Introduction aux techniques avancées de C#15
- 6.1Délégués et événements
- 6.2Délégués
- 6.3Événements
- 6.4Types anonymes
- 6.5Tuples
- 6.6Présentation de la classe Tuple
- 6.7Tuples de valeur
- 6.8Correspondance de motifs
- 6.9Expression is
- 6.10Expression switch
- 6.11Expressions régulières
- 6.12Correspondance du texte d’entrée
- 6.13Recherche de sous-chaînes
- 6.14Modifier des parties d’un texte
- 6.15Méthodes d’extension
- Introduction aux techniques avancées de C#15
- 7.1Délégués et événements
- 7.2Délégués
- 7.3Événements
- 7.4Types anonymes
- 7.5Tuples
- 7.6Présentation de la classe Tuple
- 7.7Tuples de valeur
- 7.8Correspondance de motifs
- 7.9Expression is
- 7.10Expression switch
- 7.11Expressions régulières
- 7.12Correspondance du texte d’entrée
- 7.13Recherche de sous-chaînes
- 7.14Modifier des parties d’un texte
- 7.15Méthodes d’extension
- Administration des ressources6
- Administration des ressources6
- Administration des ressources6
- Administration des ressources6
- Administration des ressources6
- Administration des ressources6
- Administration des ressources6
- Introduction au WPF5
- Introduction au WPF5
- Introduction au WPF5
- Introduction au WPF5
- Introduction au WPF5
- Introduction au WPF5
- Introduction au WPF5
- Introduction à WCF4
- Introduction à WCF4
- Introduction à WCF4
- Introduction à WCF4
- Introduction à WCF4
- Introduction à WCF4
- Introduction à WCF4
- LAMBDAS, LINQ ET PROGRAMMATION FONCTIONNELLE11
- 29.1Programmation fonctionnelle
- 29.2Fonctions comme citoyens de première classe
- 29.3Expressions lambda
- 29.4LINQ
- 29.5Opérateurs de requête standard
- 29.6Syntaxe des requêtes
- 29.7Autres concepts de programmation fonctionnelle
- 29.8Application de fonctions partielles
- 29.9CurryingFermetures
- 29.10Monoïdes
- 29.11Monades
- LAMBDAS, LINQ ET PROGRAMMATION FONCTIONNELLE11
- 30.1Programmation fonctionnelle
- 30.2Fonctions comme citoyens de première classe
- 30.3Expressions lambda
- 30.4LINQ
- 30.5Opérateurs de requête standard
- 30.6Syntaxe des requêtes
- 30.7Autres concepts de programmation fonctionnelle
- 30.8Application de fonctions partielles
- 30.9CurryingFermetures
- 30.10Monoïdes
- 30.11Monades
- LAMBDAS, LINQ ET PROGRAMMATION FONCTIONNELLE11
- 31.1Programmation fonctionnelle
- 31.2Fonctions comme citoyens de première classe
- 31.3Expressions lambda
- 31.4LINQ
- 31.5Opérateurs de requête standard
- 31.6Syntaxe des requêtes
- 31.7Autres concepts de programmation fonctionnelle
- 31.8Application de fonctions partielles
- 31.9CurryingFermetures
- 31.10Monoïdes
- 31.11Monades
- LAMBDAS, LINQ ET PROGRAMMATION FONCTIONNELLE11
- 32.1Programmation fonctionnelle
- 32.2Fonctions comme citoyens de première classe
- 32.3Expressions lambda
- 32.4LINQ
- 32.5Opérateurs de requête standard
- 32.6Syntaxe des requêtes
- 32.7Autres concepts de programmation fonctionnelle
- 32.8Application de fonctions partielles
- 32.9CurryingFermetures
- 32.10Monoïdes
- 32.11Monades
- LAMBDAS, LINQ ET PROGRAMMATION FONCTIONNELLE11
- 33.1Programmation fonctionnelle
- 33.2Fonctions comme citoyens de première classe
- 33.3Expressions lambda
- 33.4LINQ
- 33.5Opérateurs de requête standard
- 33.6Syntaxe des requêtes
- 33.7Autres concepts de programmation fonctionnelle
- 33.8Application de fonctions partielles
- 33.9CurryingFermetures
- 33.10Monoïdes
- 33.11Monades
- LAMBDAS, LINQ ET PROGRAMMATION FONCTIONNELLE11
- 34.1Programmation fonctionnelle
- 34.2Fonctions comme citoyens de première classe
- 34.3Expressions lambda
- 34.4LINQ
- 34.5Opérateurs de requête standard
- 34.6Syntaxe des requêtes
- 34.7Autres concepts de programmation fonctionnelle
- 34.8Application de fonctions partielles
- 34.9CurryingFermetures
- 34.10Monoïdes
- 34.11Monades
- LAMBDAS, LINQ ET PROGRAMMATION FONCTIONNELLE11
- 35.1Programmation fonctionnelle
- 35.2Fonctions comme citoyens de première classe
- 35.3Expressions lambda
- 35.4LINQ
- 35.5Opérateurs de requête standard
- 35.6Syntaxe des requêtes
- 35.7Autres concepts de programmation fonctionnelle
- 35.8Application de fonctions partielles
- 35.9CurryingFermetures
- 35.10Monoïdes
- 35.11Monades
- Réflexion & programmation dynamique11
- 36.1Premiers pas avec la réflexion
- 36.2Chargement dynamiquement des assemblages
- 36.3Présentation de la liaison tardive
- 36.4Type dynamique
- 36.5Attributs
- 36.6Attributs système
- 36.7Attributs définis par l’utilisateur
- 36.8Manipulation pratique des attributs
- 36.9Cibles des attributs
- 36.10Attributs d’assemblage
- 36.11Attributs dans la réflexion
- Réflexion & programmation dynamique11
- 37.1Premiers pas avec la réflexion
- 37.2Chargement dynamiquement des assemblages
- 37.3Présentation de la liaison tardive
- 37.4Type dynamique
- 37.5Attributs
- 37.6Attributs système
- 37.7Attributs définis par l’utilisateur
- 37.8Manipulation pratique des attributs
- 37.9Cibles des attributs
- 37.10Attributs d’assemblage
- 37.11Attributs dans la réflexion
- Réflexion & programmation dynamique11
- 38.1Premiers pas avec la réflexion
- 38.2Chargement dynamiquement des assemblages
- 38.3Présentation de la liaison tardive
- 38.4Type dynamique
- 38.5Attributs
- 38.6Attributs système
- 38.7Attributs définis par l’utilisateur
- 38.8Manipulation pratique des attributs
- 38.9Cibles des attributs
- 38.10Attributs d’assemblage
- 38.11Attributs dans la réflexion
- Réflexion & programmation dynamique11
- 39.1Premiers pas avec la réflexion
- 39.2Chargement dynamiquement des assemblages
- 39.3Présentation de la liaison tardive
- 39.4Type dynamique
- 39.5Attributs
- 39.6Attributs système
- 39.7Attributs définis par l’utilisateur
- 39.8Manipulation pratique des attributs
- 39.9Cibles des attributs
- 39.10Attributs d’assemblage
- 39.11Attributs dans la réflexion
- Réflexion & programmation dynamique11
- 40.1Premiers pas avec la réflexion
- 40.2Chargement dynamiquement des assemblages
- 40.3Présentation de la liaison tardive
- 40.4Type dynamique
- 40.5Attributs
- 40.6Attributs système
- 40.7Attributs définis par l’utilisateur
- 40.8Manipulation pratique des attributs
- 40.9Cibles des attributs
- 40.10Attributs d’assemblage
- 40.11Attributs dans la réflexion
- Réflexion & programmation dynamique11
- 41.1Premiers pas avec la réflexion
- 41.2Chargement dynamiquement des assemblages
- 41.3Présentation de la liaison tardive
- 41.4Type dynamique
- 41.5Attributs
- 41.6Attributs système
- 41.7Attributs définis par l’utilisateur
- 41.8Manipulation pratique des attributs
- 41.9Cibles des attributs
- 41.10Attributs d’assemblage
- 41.11Attributs dans la réflexion
- Réflexion & programmation dynamique11
- 42.1Premiers pas avec la réflexion
- 42.2Chargement dynamiquement des assemblages
- 42.3Présentation de la liaison tardive
- 42.4Type dynamique
- 42.5Attributs
- 42.6Attributs système
- 42.7Attributs définis par l’utilisateur
- 42.8Manipulation pratique des attributs
- 42.9Cibles des attributs
- 42.10Attributs d’assemblage
- 42.11Attributs dans la réflexion
- MULTITHREADING ET PROGRAMMATION ASYNCHRONE16
- 43.1Définition d’un thread
- 43.2Conception de threads dans .NET
- 43.3Manipulation de la classe ThreadPool
- 43.4Introduction aux primitives de synchronisation
- 43.5Paradigme des tâches
- 43.6Mise en oeuvre synchrones de méthodes asynchrones
- 43.7Méthodes asynchrones occasionnelles
- 43.8Rompre la chaîne de tâches – bloquer le thread
- 43.9Conception manuelle d’une tâche
- 43.10Rupture de la chaîne de tâches – « fire and forget
- 43.11Tâche & exceptions
- 43.12Annulation d’une tâche
- 43.13Suivi de la progression d’une tâche
- 43.14Parallélisation des tâches
- 43.15Signalisation des tâches avec l’objet TaskCompletionSource
- 43.16Contexte de synchronisation
- MULTITHREADING ET PROGRAMMATION ASYNCHRONE16
- 44.1Définition d’un thread
- 44.2Conception de threads dans .NET
- 44.3Manipulation de la classe ThreadPool
- 44.4Introduction aux primitives de synchronisation
- 44.5Paradigme des tâches
- 44.6Mise en oeuvre synchrones de méthodes asynchrones
- 44.7Méthodes asynchrones occasionnelles
- 44.8Rompre la chaîne de tâches – bloquer le thread
- 44.9Conception manuelle d’une tâche
- 44.10Rupture de la chaîne de tâches – « fire and forget
- 44.11Tâche & exceptions
- 44.12Annulation d’une tâche
- 44.13Suivi de la progression d’une tâche
- 44.14Parallélisation des tâches
- 44.15Signalisation des tâches avec l’objet TaskCompletionSource
- 44.16Contexte de synchronisation
- MULTITHREADING ET PROGRAMMATION ASYNCHRONE16
- 45.1Définition d’un thread
- 45.2Conception de threads dans .NET
- 45.3Manipulation de la classe ThreadPool
- 45.4Introduction aux primitives de synchronisation
- 45.5Paradigme des tâches
- 45.6Mise en oeuvre synchrones de méthodes asynchrones
- 45.7Méthodes asynchrones occasionnelles
- 45.8Rompre la chaîne de tâches – bloquer le thread
- 45.9Conception manuelle d’une tâche
- 45.10Rupture de la chaîne de tâches – « fire and forget
- 45.11Tâche & exceptions
- 45.12Annulation d’une tâche
- 45.13Suivi de la progression d’une tâche
- 45.14Parallélisation des tâches
- 45.15Signalisation des tâches avec l’objet TaskCompletionSource
- 45.16Contexte de synchronisation
- MULTITHREADING ET PROGRAMMATION ASYNCHRONE16
- 46.1Définition d’un thread
- 46.2Conception de threads dans .NET
- 46.3Manipulation de la classe ThreadPool
- 46.4Introduction aux primitives de synchronisation
- 46.5Paradigme des tâches
- 46.6Mise en oeuvre synchrones de méthodes asynchrones
- 46.7Méthodes asynchrones occasionnelles
- 46.8Rompre la chaîne de tâches – bloquer le thread
- 46.9Conception manuelle d’une tâche
- 46.10Rupture de la chaîne de tâches – « fire and forget
- 46.11Tâche & exceptions
- 46.12Annulation d’une tâche
- 46.13Suivi de la progression d’une tâche
- 46.14Parallélisation des tâches
- 46.15Signalisation des tâches avec l’objet TaskCompletionSource
- 46.16Contexte de synchronisation
- MULTITHREADING ET PROGRAMMATION ASYNCHRONE16
- 47.1Définition d’un thread
- 47.2Conception de threads dans .NET
- 47.3Manipulation de la classe ThreadPool
- 47.4Introduction aux primitives de synchronisation
- 47.5Paradigme des tâches
- 47.6Mise en oeuvre synchrones de méthodes asynchrones
- 47.7Méthodes asynchrones occasionnelles
- 47.8Rompre la chaîne de tâches – bloquer le thread
- 47.9Conception manuelle d’une tâche
- 47.10Rupture de la chaîne de tâches – « fire and forget
- 47.11Tâche & exceptions
- 47.12Annulation d’une tâche
- 47.13Suivi de la progression d’une tâche
- 47.14Parallélisation des tâches
- 47.15Signalisation des tâches avec l’objet TaskCompletionSource
- 47.16Contexte de synchronisation
- MULTITHREADING ET PROGRAMMATION ASYNCHRONE16
- 48.1Définition d’un thread
- 48.2Conception de threads dans .NET
- 48.3Manipulation de la classe ThreadPool
- 48.4Introduction aux primitives de synchronisation
- 48.5Paradigme des tâches
- 48.6Mise en oeuvre synchrones de méthodes asynchrones
- 48.7Méthodes asynchrones occasionnelles
- 48.8Rompre la chaîne de tâches – bloquer le thread
- 48.9Conception manuelle d’une tâche
- 48.10Rupture de la chaîne de tâches – « fire and forget
- 48.11Tâche & exceptions
- 48.12Annulation d’une tâche
- 48.13Suivi de la progression d’une tâche
- 48.14Parallélisation des tâches
- 48.15Signalisation des tâches avec l’objet TaskCompletionSource
- 48.16Contexte de synchronisation
- MULTITHREADING ET PROGRAMMATION ASYNCHRONE16
- 49.1Définition d’un thread
- 49.2Conception de threads dans .NET
- 49.3Manipulation de la classe ThreadPool
- 49.4Introduction aux primitives de synchronisation
- 49.5Paradigme des tâches
- 49.6Mise en oeuvre synchrones de méthodes asynchrones
- 49.7Méthodes asynchrones occasionnelles
- 49.8Rompre la chaîne de tâches – bloquer le thread
- 49.9Conception manuelle d’une tâche
- 49.10Rupture de la chaîne de tâches – « fire and forget
- 49.11Tâche & exceptions
- 49.12Annulation d’une tâche
- 49.13Suivi de la progression d’une tâche
- 49.14Parallélisation des tâches
- 49.15Signalisation des tâches avec l’objet TaskCompletionSource
- 49.16Contexte de synchronisation
- C# & .NET Core 611
- 50.1Manipulation de l’interface de ligne de commande (CLI) de .NET
- 50.2Déploiement sur les distributions Linux
- 50.3Préparation de la boîte de développement
- 50.4Écriture du code compatible avec les multiples plates-formes
- 50.5Définition de la norme .NET et son rôle dans la conception d’une application
- 50.6Création d’une bibliothèque .NET Standard
- 50.7Consommation des paquets NuGet
- 50.8Ajout des packages à un projet
- 50.9Migration de .NET Framework vers .NET Core
- 50.10Analyse de l’architecture
- 50.11Préparation du processus de migration
- C# & .NET Core 611
- 51.1Manipulation de l’interface de ligne de commande (CLI) de .NET
- 51.2Déploiement sur les distributions Linux
- 51.3Préparation de la boîte de développement
- 51.4Écriture du code compatible avec les multiples plates-formes
- 51.5Définition de la norme .NET et son rôle dans la conception d’une application
- 51.6Création d’une bibliothèque .NET Standard
- 51.7Consommation des paquets NuGet
- 51.8Ajout des packages à un projet
- 51.9Migration de .NET Framework vers .NET Core
- 51.10Analyse de l’architecture
- 51.11Préparation du processus de migration
- C# & .NET Core 611
- 52.1Manipulation de l’interface de ligne de commande (CLI) de .NET
- 52.2Déploiement sur les distributions Linux
- 52.3Préparation de la boîte de développement
- 52.4Écriture du code compatible avec les multiples plates-formes
- 52.5Définition de la norme .NET et son rôle dans la conception d’une application
- 52.6Création d’une bibliothèque .NET Standard
- 52.7Consommation des paquets NuGet
- 52.8Ajout des packages à un projet
- 52.9Migration de .NET Framework vers .NET Core
- 52.10Analyse de l’architecture
- 52.11Préparation du processus de migration
- C# & .NET Core 611
- 53.1Manipulation de l’interface de ligne de commande (CLI) de .NET
- 53.2Déploiement sur les distributions Linux
- 53.3Préparation de la boîte de développement
- 53.4Écriture du code compatible avec les multiples plates-formes
- 53.5Définition de la norme .NET et son rôle dans la conception d’une application
- 53.6Création d’une bibliothèque .NET Standard
- 53.7Consommation des paquets NuGet
- 53.8Ajout des packages à un projet
- 53.9Migration de .NET Framework vers .NET Core
- 53.10Analyse de l’architecture
- 53.11Préparation du processus de migration
- C# & .NET Core 611
- 54.1Manipulation de l’interface de ligne de commande (CLI) de .NET
- 54.2Déploiement sur les distributions Linux
- 54.3Préparation de la boîte de développement
- 54.4Écriture du code compatible avec les multiples plates-formes
- 54.5Définition de la norme .NET et son rôle dans la conception d’une application
- 54.6Création d’une bibliothèque .NET Standard
- 54.7Consommation des paquets NuGet
- 54.8Ajout des packages à un projet
- 54.9Migration de .NET Framework vers .NET Core
- 54.10Analyse de l’architecture
- 54.11Préparation du processus de migration
- C# & .NET Core 611
- 55.1Manipulation de l’interface de ligne de commande (CLI) de .NET
- 55.2Déploiement sur les distributions Linux
- 55.3Préparation de la boîte de développement
- 55.4Écriture du code compatible avec les multiples plates-formes
- 55.5Définition de la norme .NET et son rôle dans la conception d’une application
- 55.6Création d’une bibliothèque .NET Standard
- 55.7Consommation des paquets NuGet
- 55.8Ajout des packages à un projet
- 55.9Migration de .NET Framework vers .NET Core
- 55.10Analyse de l’architecture
- 55.11Préparation du processus de migration
- C# & .NET Core 611
- 56.1Manipulation de l’interface de ligne de commande (CLI) de .NET
- 56.2Déploiement sur les distributions Linux
- 56.3Préparation de la boîte de développement
- 56.4Écriture du code compatible avec les multiples plates-formes
- 56.5Définition de la norme .NET et son rôle dans la conception d’une application
- 56.6Création d’une bibliothèque .NET Standard
- 56.7Consommation des paquets NuGet
- 56.8Ajout des packages à un projet
- 56.9Migration de .NET Framework vers .NET Core
- 56.10Analyse de l’architecture
- 56.11Préparation du processus de migration
- MIGRATION & PUBLICATION8
- MIGRATION & PUBLICATION8
- MIGRATION & PUBLICATION8
- MIGRATION & PUBLICATION8
- MIGRATION & PUBLICATION8
- MIGRATION & PUBLICATION8
- MIGRATION & PUBLICATION8
- Tests unitaires sous C#10
- 64.1Définition de tests unitaires
- 64.2Présentation des différents outils Microsoft pour les tests
- 64.3Conception d’un projet de tests unitaires C#
- 64.4Rédaction de tests unitaires
- 64.5Analyse de la couverture du code
- 64.6Anatomie d’un test
- 64.7Rédaction de tests unitaires à partir de données
- 64.8Données provenant d’attributs
- 64.9Données dynamiques
- 64.10Données provenant de sources externes
- Tests unitaires sous C#10
- 65.1Définition de tests unitaires
- 65.2Présentation des différents outils Microsoft pour les tests
- 65.3Conception d’un projet de tests unitaires C#
- 65.4Rédaction de tests unitaires
- 65.5Analyse de la couverture du code
- 65.6Anatomie d’un test
- 65.7Rédaction de tests unitaires à partir de données
- 65.8Données provenant d’attributs
- 65.9Données dynamiques
- 65.10Données provenant de sources externes
- Tests unitaires sous C#10
- 66.1Définition de tests unitaires
- 66.2Présentation des différents outils Microsoft pour les tests
- 66.3Conception d’un projet de tests unitaires C#
- 66.4Rédaction de tests unitaires
- 66.5Analyse de la couverture du code
- 66.6Anatomie d’un test
- 66.7Rédaction de tests unitaires à partir de données
- 66.8Données provenant d’attributs
- 66.9Données dynamiques
- 66.10Données provenant de sources externes
- Tests unitaires sous C#10
- 67.1Définition de tests unitaires
- 67.2Présentation des différents outils Microsoft pour les tests
- 67.3Conception d’un projet de tests unitaires C#
- 67.4Rédaction de tests unitaires
- 67.5Analyse de la couverture du code
- 67.6Anatomie d’un test
- 67.7Rédaction de tests unitaires à partir de données
- 67.8Données provenant d’attributs
- 67.9Données dynamiques
- 67.10Données provenant de sources externes
- Tests unitaires sous C#10
- 68.1Définition de tests unitaires
- 68.2Présentation des différents outils Microsoft pour les tests
- 68.3Conception d’un projet de tests unitaires C#
- 68.4Rédaction de tests unitaires
- 68.5Analyse de la couverture du code
- 68.6Anatomie d’un test
- 68.7Rédaction de tests unitaires à partir de données
- 68.8Données provenant d’attributs
- 68.9Données dynamiques
- 68.10Données provenant de sources externes
- Tests unitaires sous C#10
- 69.1Définition de tests unitaires
- 69.2Présentation des différents outils Microsoft pour les tests
- 69.3Conception d’un projet de tests unitaires C#
- 69.4Rédaction de tests unitaires
- 69.5Analyse de la couverture du code
- 69.6Anatomie d’un test
- 69.7Rédaction de tests unitaires à partir de données
- 69.8Données provenant d’attributs
- 69.9Données dynamiques
- 69.10Données provenant de sources externes
- Tests unitaires sous C#10
- 70.1Définition de tests unitaires
- 70.2Présentation des différents outils Microsoft pour les tests
- 70.3Conception d’un projet de tests unitaires C#
- 70.4Rédaction de tests unitaires
- 70.5Analyse de la couverture du code
- 70.6Anatomie d’un test
- 70.7Rédaction de tests unitaires à partir de données
- 70.8Données provenant d’attributs
- 70.9Données dynamiques
- 70.10Données provenant de sources externes