ASP .NET Core MVC – Utilisation des objets ViewData / ViewBag / TempData

Introduction ASP .NET Core MVC propose différents objets permettant de communiquer des données entre les différents éléments d’une application. Volontairement cet article ne traite pas de la communication d’un Model / ViewModel du contrôleur à une vue. Ces objets sont les suivants : ViewData, ViewBag et TempData. Voici un schéma permettant de résumer leur rôle
Read More »

Framework .NET – C# – Retours d’expérience pour de meilleures performances

J’aimerais faire des retours d’expérience concernant certaines techniques de développement avec le Framework .NET (Core) et le langage C#. Certaines d’entre elles peuvent être très utiles dans de nombreuses situations, mais trop les utiliser peuvent pénaliser les performances dans certains contextes : Les finaliseurs Le tas (espace de stockage mémoire des variables de type référence) est
Read More »

Langage C# – Méthode d’extension ForEach ou instruction foreach pour parcourir un tableau ?

En parcourant du code sur un projet, j’ai observé que le développeur avait écrit les lignes de code suivantes : array.ToList().ForEach(item => { // Traitement ... }); où array est un tableau d’environ 50000 chaînes de caractères. Cette syntaxe consiste à « transformer » le tableau en collection, afin de pouvoir utiliser la méthode extension ForEach proposée par
Read More »

ASP .NET Core 6 / C# – Bloquer les attaques inter applications web avec les jetons d’anti-contrefaçon

Présentation La contrefaçon de requêtes inter applications Web, est une attaque dans laquelle une application Web malveillante tente d’influer sur les échanges entre un navigateur et une autre application Web. Comment est-ce possible ? Le client Web reçoit des vues avec des formulaires fournies par l’application Web et doit être autorisé à consommer les services qu’elle
Read More »

C# – Initialisation tardive des propriétés (lazy)

Présentation Afin d’améliorer les performances et la gestion de la mémoire lors de la création d’objets, il est parfois nécessaire d’initialiser certaines de leurs propriétés de manière tardive, c’est-à-dire au moment où nous souhaitons les utiliser. Par exemple, lors de l’instanciation de la classe Report, la collection d’objets de type Statistic est coûteuse en mémoire
Read More »

ASP .NET Core MVC – Libérer les ressources de manière asynchrone avec l’interface IDisposableAsync (C#)

Présentation Depuis la version 3.0 du Framework .NET Core, Microsoft propose l’interface IDisposableAsync. Nous allons voir comment utiliser cette interface sur les contrôleurs des applications ASP .NET Core MVC, afin de libérer des ressources de manière asynchrone. Mise en œuvre Voici un contrôleur implémentant l’interface IDisposableAsync : public class HomeController : Controller, IAsyncDisposable { private
Read More »

C# 9 – Renforcement de la covariance

Avec le langage C#, lorsqu’une classe hérite d’une classe, il est possible de redéfinir une méthode ou une propriété dans la classe dérivée, si elle est déclarée abstraite ou virtuelle dans la classe de base. Cependant, jusqu’à la version 8, il n’est pas possible de modifier sa signature. La version 9 du langage C# renforce
Read More »

C# – Les flux asynchrones

A partir de la version 8 du langage C#, il est possible de créer des flux asynchrones, autrement dit des méthodes qui retournent un ensemble de données / d’objets de manière asynchrone pouvant être consommées de manière asynchrone. Ces méthodes possèdent les caractéristiques suivantes : Elles sont déclarées avec le mot clé async Elles retournent
Read More »