C# – Optimiser les performances des opérations ensemblistes avec la classe HashSet

En tant que concepteur / développeur d’applications de gestion de données avec la plateforme Microsoft .Net et le langage C#, je cherche toujours à optimiser les performances des algorithmes que j’implémente. Dans cet article, je vais vous présenter la classe System.Collections.Generic.HashSet et les performances qu’elle propose par rapport à la classe System.Collections.Generic.List lors d’opérations ensemblistes
Read More »

WPF – Traitements asynchrones modifiant les contrôles de l’IHM

L’IHM d’une application WPF est constituée de formulaires et de contrôles qui sont créés par le thread principal de l’application. Le Framework .NET interdisant la modification des propriétés de ces contrôles par un autre thread, il n’est pas possible à un traitement s’exécutant de manière asynchrone de modifier, par exemple, la valeur d’une barre de
Read More »

ASP .NET Core MVC – Inversion de contrôle et injection de dépendance

Introduction Certaines personnes pensent que l’inversion de contrôle et l’injection de dépendance sont « similaires » dans le sens où l’injection de dépendance est l’implémentation de l’inversion de contrôle. Ceci est vrai mais un peu réducteur. Dans cet article, je vais présenter et définir ces deux concepts de la manière la plus simple possible. L’inversion
Read More »

ASP .NET Core MVC – Mesurer la durée d’exécution des requêtes HTTP

Présentation Dans ASP .NET Core MVC, les middlewares sont des composants permettant d’exécuter du code lors du traitement d’une requête et/ou la réponse HTTP. Dans cet article, je vous propose d’implémenter un middleware personnalisé, dont le rôle est de mesurer les durées d’exécution des requêtes HTTP nécessitant l’exécution d’une action dans un contrôleur. Mise en
Read More »

C# 8 – Utiliser le mot clé « using » pour déclarer des variables locales

En C#, le mot clé using est utilisé pour importer des espaces de nom. Il est aussi utilisé pour délimiter l’utilisation d’un objet dans un algorithme avec une libération anticipée de la mémoire, à condition que la classe instanciée pour créer cet objet implémente l’interface IDisposable. Voici un exemple : using (StreamReader streamReader = new
Read More »

ASP .NET Core MVC – Tracer des logs dans un fichier

Présentation Enregistrer des traces lors du traitement des requêtes HTTP permet d’obtenir des informations sur le comportement de l’application Web, sur ses performances, et d’autres utiles pour le débogage de ses fonctionnalités. Dans cet article, je vous propose d’utiliser le composant Serilog afin de créer des fichiers de logs. Fonctionnement Il existe différents niveaux de
Read More »

Langage C# – Convertir des chaînes de caractères en nombres décimaux

La conversion de données numériques sous forme de chaîne de caractères en nombre décimaux peut être problématique en fonction des données fournies à l’application, des paramètres régionaux du système d’exploitation sur lequel l’application s’exécute et la configuration de la culture du thread exécutant le code, … Dans cet article, je vous propose une méthode de
Read More »

WPF – Implémentation et utilisation des propriétés de dépendance

Présentation Les propriétés de dépendance sont utilisées dans tous composants WPF. Ces propriétés, différentes des propriétés standards utilisées habituellement dans les classes C#, permettent de mettre en œuvre de nombreuses fonctionnalités de WPF qui ne peuvent utiliser ces propriétés standards (propriétés attachées, styles, animations, liaisons de données, …). Elles possèdent les caractéristiques suivantes : Faible
Read More »