C#
Des bases du langage à LINQ, async/await et l’écosystème .NET ; fonctionnalités modernes et bonnes pratiques pour des applications prêtes pour la production.
Qu’est-ce que C# ?
C# est un langage à typage statique développé par Microsoft qui combine des fonctionnalités orientées objet et fonctionnelles. Avec .NET 8, il est multiplateforme (Windows, Linux, macOS) et s’utilise pour des API web, des applications de bureau, des services cloud, des tâches en arrière-plan et des jeux (Unity) sur un large éventail.
Écosystème : ASP.NET Core (web), Entity Framework Core (accès aux données), xUnit/NUnit (tests), NuGet (gestion des paquets) et la CLI dotnet (ligne de commande).
TL;DR
- C# moderne :
records, correspondance de motifs (pattern matching),async/await, et span/memory pour la performance. - Services REST rapides avec Minimal APIs ; CRUD efficace et LINQ avec EF Core.
- Architecture en couches + injection de dépendances pour un design testable.
Bases du langage
Les bases de la syntaxe C#, du système de types et du contrôle de flux. Le premier arrêt pour comprendre la logique du langage.
Introduction à C# et à l’écosystème .NET
C# est un langage moderne, sûr et orienté objet. Avec l’écosystème .NET, il est possible de développer des applications web, mobiles, de bureau et des jeux.
Premier projet C#
Première application console en C# avec Visual Studio 2022 : utilisation de WriteLine, ReadKey et ReadLine.
Types de données de base en C#
Types de données de base en C# : numériques, textuels, logiques, orientés objet et nullables.
Structure de la syntaxe C#
Découvrez les bases de la syntaxe C#, incluant les blocs de code, les commentaires et les règles de nommage des variables.
Opérateurs et expressions en C#
Opérateurs et expressions en C# : utilisation des opérateurs arithmétiques, de comparaison, logiques, d’incrémentation/décrémentation, ternaire et null-coalescing.
Structures conditionnelles en C# (if, else, switch)
Structures conditionnelles en C# : apprenez à utiliser if, else if, else et switch pour exécuter différentes actions selon les conditions.
Boucles en C# (for, foreach, while, do-while)
Apprenez à utiliser les boucles for, foreach, while et do-while en C# pour gérer des actions répétitives avec des exemples pratiques.
Commandes de console en C#
Apprenez à utiliser la console en C# pour afficher des messages, lire les entrées utilisateur et formater le texte.
Opérations sur les chaînes de caractères en C#
Aprende a trabajar con cadenas en C#, incluyendo concatenación, búsqueda, substring, IndexOf y otras operaciones esenciales.
Conversions de types en C#
Apprenez les conversions de types en C#, y compris le casting implicite et explicite, Parse, TryParse et Convert avec exemples.
Utilisation des constantes et des énumérations en C#
Apprenez à utiliser les constantes et les énumérations en C# pour écrire un code plus lisible, sûr et maintenable avec exemples.
Bibliothèque Math en C#
Découvrez la bibliothèque Math en C# et apprenez à utiliser Pow, Sqrt, Round, Abs et d’autres méthodes mathématiques essentielles.
Opérations booléennes en C#
Apprenez les opérations booléennes en C#, y compris le type bool, les comparaisons et les opérateurs logiques &&, || et !.
Opérations DateTime & TimeSpan en C#
Apprenez à utiliser DateTime et TimeSpan en C# pour gérer les opérations de date et d’heure comme la comparaison et le formatage.
Opérations aléatoires en C#
Apprenez à utiliser la classe Random en C# pour générer des nombres et valeurs aléatoires avec Next, NextDouble et exemples.
Méthodes et utilisation des paramètres en C#
Apprenez à définir des méthodes et à utiliser des paramètres en C#, y compris les paramètres par valeur et par référence avec exemples.
Gestion des exceptions en C# (try, catch, finally)
Apprenez à gérer les exceptions en C# avec les blocs try, catch et finally afin de traiter les erreurs de manière sûre avec exemples.
Espaces de noms et assemblies en C#
Apprenez les concepts de namespaces et d’assemblies en C# pour structurer le code et gérer efficacement les dépendances.
Programmation orientée objet (POO) et patrons
Classes, héritage, interfaces et patrons de conception pour écrire du code réutilisable et maintenable en C#.
Classes, Objets, Propriétés et Méthodes en C#
Découvrez comment les classes, objets, propriétés et méthodes en C# constituent les fondements de la programmation orientée objet.
Structs en C# – Différences avec les classes
Découvrez les différences entre structs et classes en C#, notamment le modèle mémoire, l’héritage et les performances.
Constructeurs, Destructeurs et this en C#
Apprenez à utiliser les constructeurs, destructeurs et le mot-clé this en C# pour gérer le cycle de vie des objets.
Classes Sealed, Static et Partial en C#
Apprenez l’objectif, les différences et les cas d’utilisation des classes sealed, static et partial en C#.
Record Types et Objets Immuables en C#
Apprenez les record types et les objets immuables en C#, avec l’égalité par valeur, les with-expressions et des exemples.
Encapsulation, Héritage et Polymorphisme en C#
Apprenez l’encapsulation, l’héritage et le polymorphisme en C# avec des exemples pour maîtriser les bases de la POO.
Interfaces et Classes Abstraites en C#
Découvrez les interfaces et classes abstraites en C#, leurs différences et quand les utiliser pour concevoir un code maintenable.
Délégués et Événements en C#
Apprenez les délégués et événements en C# pour comprendre la programmation événementielle avec des exemples concrets.
Expressions Lambda en C#
Apprenez les expressions lambda en C#, avec une syntaxe concise, Func et Action, et des exemples pratiques avec LINQ.
Méthodes d’extension en C#
Apprenez les méthodes d’extension en C# pour ajouter des fonctionnalités aux types existants sans modifier leur code.
Principes de l’Injection de Dépendances en C#
Apprenez les principes de l’Injection de Dépendances en C#, la gestion des dépendances et le couplage faible avec exemples.
Principes SOLID en C#
Application des principes SOLID en C# avec des exemples : pour un code flexible, maintenable et testable.
Modèles de conception en C# (Factory, Singleton, Repository, Observer)
Découvrez les modèles de conception en C#, tels que Factory, Singleton et Repository, pour créer des applications maintenables.
Interop en C# (Utilisation de bibliothèques C/C++)
Apprenez l’Interop en C# pour utiliser des bibliothèques C/C++, y compris P/Invoke et la gestion du code non managé.
Données et collections
Tableaux, collections, génériques et LINQ pour gérer et interroger efficacement les données en C#.
Tableaux (Arrays) en C#
Apprenez les tableaux en C# : déclaration, indexation, parcours avec boucles et opérations courantes avec exemples.
Collections en C# : Liste, Dictionnaire, File, Pile
Découvrez les collections en C# (List, Dictionary, Queue, Stack) pour gérer des données efficacement avec exemples.
Génériques en C# (List<T>, Dictionary<TKey,TValue>)
Apprenez les génériques en C# (List<T>, Dictionary<TKey,TValue>) pour écrire un code réutilisable et typé, avec exemples.
Notions de base LINQ en C# (Where, Select, OrderBy)
Apprenez les bases de LINQ en C# avec Where, Select et OrderBy pour filtrer, projeter et trier des collections, avec exemples.
Créer un ZIP d’un dossier avec progression en .NET (exemple WPF)
Créez un ZIP depuis un dossier en .NET et mettez à jour une ProgressBar WPF via ZipArchive et IProgress pour une UI fluide.
Format de réponse API standard en ASP.NET Core (Result)
Standardisez les réponses de succès et d’erreur en ASP.NET Core avec un wrapper Result
Rate Limiting par IP en ASP.NET Core (.NET 8) : 429 Too Many Requests
Limitez les requêtes par IP avec le middleware de rate limiting .NET 8 et renvoyez 429 avec Retry-After pour protéger votre API.
ProblemDetails en ASP.NET Core : erreurs propres avec TraceId
Mapper les exceptions vers ProblemDetails (RFC 7807) et ajouter un traceId pour des erreurs cohérentes et un diagnostic rapide dans les logs.
Pagination propre en ASP.NET Core Web API (Headers + Link)
Gardez uniquement les éléments dans le body et placez les métadonnées de pagination dans les headers. Ajoutez un Link header RFC 5988 (next/prev).