Introduction à CQRS
Dans beaucoup d’applications métier, on finit par mélanger dans les mêmes modèles et les mêmes services des besoins très différents : d’un côté des commandes qui modifient l’état, de l’autre des lectures optimisées pour les écrans et les rapports. Le pattern CQRS (Command Query Responsibility Segregation) propose de séparer explicitement écriture et lecture, afin d’avoir un modèle riche et cohérent pour les règles métier, et un modèle de lecture simple, rapide et taillé pour les besoins réels de consultation.
Records en C# : égalité par valeur et immutabilité
Les records, introduits en C# 9, offrent un moyen idiomatique de modéliser des données avec une égalité par valeur et une immutabilité naturelle, là où les classes traditionnelles restent centrées sur la référence et l’état mutable. Ce document présente également les cas où il est pertinent de les privilégier, notamment pour les DTO, les objets de valeur ou les contrats d’API.
Égalité et Identité en .NET : Comprendre les différences pour les types valeur et référence
Comprendre la différence entre égalité et identité est essentiel dès que l’on commence à utiliser des collections comme Dictionary, HashSet ou même List en .NET. Ce document propose un parcours progressif : d’abord les notions de base (égalité logique vs identité de référence), puis le fonctionnement interne des collections (hash + Equals), avant de montrer comment implémenter correctement l’égalité pour les classes et les structs, utiliser des comparateurs externes et éviter les pièges les plus courants.
Pile et Tas en .NET : Comprendre la gestion mémoire des types valeur et référence
Comprendre la différence entre pile (stack) et tas (heap) est essentiel pour bien raisonner sur la mémoire en .NET, surtout quand on manipule types valeur et types référence. Comprendre où sont stockées les données aide à éviter des bugs subtils et à écrire du code plus performant.
Injection automatique de dépendances en .NET (Ioc 3/3)
L’injection de dépendances (IoC) est une pratique courante en développement .NET pour gérer les dépendances entre les classes. Lorsqu’une application devient plus grande, l’enregistrement manuel de chaque service dans le conteneur IoC peut devenir fastidieux et sujet à erreurs.
L’enregistrement automatique des services permet de simplifier ce processus en détectant et en enregistrant les types d’une assembly (DLL) en fonction de leurs interfaces. S”‘il existe de nombreuses bibliothèques tierces qui offrent cette fonctionnalité, il est également possible de l’implémenter soi-même simplement. Voici deux méthodes courantes : une utilisant la réflexion et une autre utilisant un générateur de code (Source Generator).
Inversion de contrôle et injection de dépendance pour une assembly (Ioc 2/3)
Lorsqu’une bibliothèque de classes (DLL) est créée, il est important de permettre à cette bibliothèque de s’intégrer facilement avec le conteneur IoC de l’application principale qui l’utilise. Cela permet de gérer les dépendances de manière efficace et de favoriser la réutilisabilité du code.
l’inversion de contrôle et injection de dépendance en dotnet (Ioc 1/3)
IoC (Inversion of Control) est un principe de conception utilisé pour réduire le couplage entre les composants d’une application. Il consiste à inverser la responsabilité de la création et de la gestion des dépendances d’une classe, en déléguant cette responsabilité à un conteneur ou à un framework.
Principes SOLID en .NET
Les principes S.O.L.I.D sont un ensemble de bonnes pratiques en programmation orientée objet qui permettent de concevoir des systèmes logiciels robustes, flexibles et maintenables. Ces principes sont particulièrement utiles en .NET pour structurer des applications modulaires et testables.
25 articles, 4 pages.