Ce support s’adresse aux développeurs qui souhaitent maîtriser le développement d’applications .NET grâce au langage C#, ici dans sa version 12. Après une introduction rapide sur le fonctionnement de C# 12 et de son framework associé .NET, le lecteur installe l’environnement de développement multi-plateforme, Visual Studio Code, lui permettant de réaliser les exercices du livre. Le lecteur étudie ensuite la syntaxe de base du langage ainsi que les éléments associés pour écrire des programmes...
Ce support s’adresse aux développeurs qui souhaitent maîtriser le développement d’applications .NET grâce au langage C#, ici dans sa version 12.
Après une introduction rapide sur le fonctionnement de C# 12 et de son framework associé .NET, le lecteur installe l’environnement de développement multi-plateforme, Visual Studio Code, lui permettant de réaliser les exercices du livre.
Le lecteur étudie ensuite la syntaxe de base du langage ainsi que les éléments associés pour écrire des programmes simples rapidement. Il appréhende également un concept fondamental et central : la programmation orientée objet, paradigme utilisé dans l’utilisation de nombreux langages de développement.
Pour créer des programmes robustes et performants, le lecteur découvre les principaux éléments algorithmiques du langage comme les boucles, les collections ou encore la gestion des erreurs.
Le langage de requête LINQ est présenté en profondeur et illustré d’exemples concrets ponctués d’exercices.
D’autres notions essentielles telles que l’asynchronisme, le fonctionnement des flux de données sont couvertes afin de compléter le panorama des possibilités du langage.
Pour permettre au lecteur d’étendre sa réflexion pour ses projets futurs, un chapitre propose un tour d’horizon des applications qu’il est possible de développer avec C#, comme des applications web, Windows ou mobile, le tout illustré par des exemples. Un ultime chapitre propose un glossaire qui servira d’aide-mémoire aux développeurs.
2.1 Installation et configuration de Visual Studio Code
2.2 Installer les outils de compilation
3. Comment fonctionne le C# ?
Premier programme
1. Créer sa première application C#
2. Comprendre et écrire du code C#
2.1 Notions de variable et constante
2.1.1 Types numériques
2.1.2 Types textuels
2.1.3 Valeur booléenne
2.1.4 Opérateurs
2.2 Les autres types
2.2.1 Stockage des dates
2.2.2 Les intervalles de temps
3. Analyser la structure d'un projet C#
3.1 La notion de blocs
3.2 Signification des blocs de code
3.2.1 Le bloc d'espace de noms
3.2.2 La définition d'une classe
3.2.3 La définition d'une méthode
3.3 Déclaration « top-level »
4. Exécuter un programme C#
4.1 Lancer le programme avec Visual Studio Code
4.2 Lancer depuis la ligne de commande
5. Exercice
5.1 Énoncé
5.2 Corrigé
Programmation orientée objet
1. Principes de la programmation orientée objet
1.1 Qu'est-ce qu'une classe ?
1.1.1 Les classes dans Visual Studio Code
1.1.2 L'héritage
1.1.3 L'encapsulation
1.2 Que peut-on déclarer dans une classe ?
1.2.1 Les méthodes
1.2.2 Déclarer une donnée
1.3 Instancier une classe
1.3.1 Le constructeur
1.3.2 L'instanciation avec le mot-clé new
1.4 Le polymorphisme
2. Concepts avancés
2.1 L'héritage avancé
2.1.1 Méthodes virtuelles
2.1.2 Classe abstraite
2.1.3 Interface
2.1.4 Implémentation par défaut dans une interface
2.1.5 Masquage
2.1.6 Interdire l'héritage
2.2 Les différents types d'objets
2.2.1 Les types références
2.2.2 Les types valeurs
2.2.3 Les types nullables
2.2.4 Les types références nullables
2.2.5 Les énumérations
2.2.6 Les records
2.3 Les modificateurs de classe
2.3.1 La notion de static
2.3.2 Static et interfaces
2.3.3 La notion de classe partielle
3. Exercice
3.1 Énoncé
3.2 Corrigé
Algorithmique
1. Bases de l'algorithmique
1.1 La logique conditionnelle
1.1.1 Test simple : le if/else
1.1.2 Multiples tests avec l'instruction switch
1.1.3 Pattern matching
1.1.4 Exercice - énoncé
1.1.5 Exercice - corrigé
1.2 Les collections
1.2.1 L'interface IEnumerable
1.2.2 Les tableaux
1.2.3 La liste
1.2.4 Les dictionnaires
1.2.5 Les collections algorithmiques
1.3 Les boucles
1.3.1 Les généralités sur les boucles
1.3.2 La boucle for
1.3.3 La boucle while
1.3.4 La boucle do while
1.3.5 La boucle foreach
1.3.6 Le mot-clé yield
1.3.7 Exercice - énoncé
1.3.8 Exercice - corrigé
2. Gestion des erreurs
2.1 Concept d'une exception
2.2 Renvoyer une exception
2.3 Gérer une exception
2.3.1 Blocs try, catch et finally
2.3.2 Filtre sur bloc catch
2.4 Exceptions et performances
LINQ
1. Fonctionnement de base
2. Variables anonymes
3. Principes des opérateurs LINQ
3.1 Opérateurs de production
3.2 Opérateurs de sélection
3.3 Opérateurs de génération
4. Expression de requête LINQ
4.1 Le mot-clé into
4.2 Le mot-clé let
5. Exercice
5.1 Énoncé
5.2 Corrigé
Sérialisation
1. Sérialisation en C#
2. Sérialisation XML
2.1 XmlSerializer
2.2 XDocument, XElement et XAttribute
3. Sérialisation JSON
3.1 Utf8JsonReader et Utf8JsonWriter
3.2 JsonDocument
3.3 JsonSerializer
4. Exercice
4.1 Énoncé
4.2 Corrigé
Concepts avancés
1. Asynchronisme
1.1 Fonctionnement de base
1.2 Thread et asynchronisme
1.3 Asynchronisme en C#
1.4 Les mots-clés async et await
1.5 Flux asynchrones
2. Algorithmique avancée
2.1 Programmation événementielle
2.1.1 Les delegates
2.1.2 Les events
2.2 Les types génériques
2.2.1 Utilisation standard
2.2.2 Contraintes sur type générique
2.3 Gestion de la mémoire
2.3.1 Le destructeur
2.3.2 IDisposable et IAsyncDisposable
2.4 Paramètres de méthodes avancés
2.4.1 Paramètre optionnel
2.4.2 Mots-clés de paramètres
2.4.3 Nommage de paramètres
2.4.4 Paramètres variables
2.5 Extension du fonctionnement d'un type
2.5.1 Méthodes d'extension
2.5.2 Définition des opérateurs
2.6 Tuples et déconstruction
2.6.1 Les tuples en C# 7
2.6.2 Déconstruction de type
2.7 Fonction locale
Créer des applications
1. Application web
1.1 Applications web graphiques
1.1.1 ASP.NET MVC
1.1.2 ASP.NET Razor Pages
1.1.3 Blazor
1.2 API
2. Application de bureau
2.1 WinForms
2.2 Windows Presentation Foundation (WPF)
2.3 Universal Windows Platform (UWP)
3. Application mobile
3.1 MAUI
3.2 Code
4. Conclusion
Référence
1. Introduction
2. Mots-clés de type
3. Mots-clés de programmation orientée objet
4. Mots-clés algorithmiques
Index
Christophe MOMMER
Ingénieur Informatique et développeur passionné, Christophe MOMMER possède plusieurs certifications Microsoft sur les technologies .NET et Azure. Il est reconnu Most Valuable Professional (MVP) dans la catégorie Développeur expert C#/Blazor. En tant que freelance, il accompagne des équipes de production dans la création de code performant à forte valeur ajoutée, il partage dans ses livres ses connaissances pour maîtriser le développement avec les technologies .NET.